8

Excel で名前付き範囲を作成する方法を知っています。

スプレッドシートがあり、さまざまな列がパラメーターとして渡され、最後に最後のセルに数式が含まれています。これは各行で何度も繰り返され、各行には異なるデータ セットが含まれ、式は正しい行インデックスを参照するように更新されます。

ただし、数式は次のようになります (3 行分):

=G2*(10*D2 + 20*E2 + 5*F2)
=G3*(10*D3 + 20*E3 + 5*F3)
=G4*(10*D4 + 20*E4 + 5*F4)

名前付き範囲を使用したいのですが、次のような方法が見つかりません

=Count * (10*var1 + 20*var2 + 5*var3)

ここで、count、var1、var2、および var3 は、現在の行の特定の列になるように自動的に更新されます。すべてのセルに名前付き範囲を作成できますが、それは役に立ちません。列に範囲という名前を付けることができますが、式にオフセットを入れる方法が見つかりません。

また、これの要点は読みやすさであるため、最終的に厄介で複雑な数式関数呼び出しになった場合、それはおそらくあまり役​​に立ちません。

4

9 に答える 9

5

Tableを作成することをお勧めします。A1:H4範囲を選択し、[テーブル] ウィジェット > [新規] > [ヘッダー付きのテーブルを挿入] (Mac の場合) に移動します。A2:H4これは、テーブルの本文およびA1:H4ヘッダーとしてマークされます。

それから、次のことがわかります。

  • ヘッダー列に何を入力しても、この列の名前が自動的に定義されCountます。RadiusDensityHeight
  • その後、次を使用して式を記述できます=[@Count]*(10*[@Radius] + 20*[@Density] + 5*[@Height])
  • cell の数式を変更するとH2、Excel はこの数式を column のすべてのセルに自動的に "コピー" しますH。そのため、数式に偶発的な矛盾が生じることはもうありません。
  • 別の行を追加する必要がある場合は、最後のセル (この例ではH4) をクリックして を押しますTab。Excel は別の行を追加し、数式を新しい行に「コピー」します。
  • 合計行が必要な場合は、テーブルウィジェットの [合計行] チェックボックスを使用して追加します。Excel は合計行を自動的に追加します。合計行の任意のセルをクリックすると、「▼▲」ボタンで「合計計算式」を変更できます。たとえば、列の合計ではなく平均を計算することができます。
  • 長いテーブルがあり、下にスクロールしてヘッダーが表示されなくなった場合、Excel は列名の代わりに列ヘッダーを自動的に表示します (例CountではなくG)。

ジョエル・スポルスキーとのビデオ You Suck at Excel で、そのすべてを説明しているので、本当にお勧めできます。

于 2016-10-13T14:02:50.290 に答える
4

行 2 から 4 の列 D から F に次の数値が設定されているとします。

    D    E    F    G
2   10   15   20
3   1    2    3
4   20   30   40

ここで、列 D の値をinput1、列 E をinput2、列 F を としたいとしますinput3

挿入>名前>定義...

input1 RefersTo =OFFSET(Sheet1!$D$2,0,0,COUNT(Sheet1!$D:$D),1)
input2 RefersTo =OFFSET(Sheet1!$E$2,0,0,COUNT(Sheet1!$E:$E),1)
input3 RefersTo =OFFSET(Sheet1!$F$2,0,0,COUNT(Sheet1!$F:$F),1)

次のように列Gに式を書くと、正しい答えが得られるはずです。

G2 =(10*input1+20*input2+30*input3) // 1000
G3 =(10*input1+20*input2+30*input3) // 140
G5 =(10*input1+20*input2+30*input3) // 2000
于 2010-12-17T18:12:35.370 に答える
2

Alex Pの答えに追加:

使用する代わりに

=OFFSET(Sheet1!$D$2,0,0,COUNT(Sheet1!$D:$D),1)
input1の式として、使用することをお勧めします
=Sheet1!$D$2:INDEX(Sheet1!$D:$D,COUNT(Sheet1"$D:$D))

同じ結果が生成されますが、不揮発性です。つまり、先行セルが変更された場合にのみ再計算されます。これは、より大きなモデルでははるかに優れています。

于 2013-02-16T22:39:23.363 に答える
1

VBA を使用している場合は、列全体を選択MyColし、名前ボックス (左上の入力ボックス) で名前を付けることができます。MyColコードでは、次のコードを使用して列 (12 行目) のセルを参照できます。

Cells(12, Range("MyCol").Column)
于 2014-08-11T09:55:19.653 に答える
0

row()関数を使用できる場合があります。これにより、現在の行が返されます。したがって、スプレッドシートのレイアウトに応じて、次のように使用できます。

=offset(NamedColumn1, row()-1)

-1は、行1から下に移動する行数を指定しているためです。行1にいる場合は、0にします。

于 2010-12-18T08:47:17.530 に答える
0

名前付き参照と呼ばれる Excel の機能を使用します。

セルまたはセル範囲に名前を付けるには

  1. そのセルまたはセル範囲を選択します
  2. その名前を名前ボックスに入力します (数式ウィジェットの左側にあり、セル名があります)。

のように、セル名と競合する名前は使用できませんk0

名前付きセルは、数式の場合に使用できます。例えば、

=pi*radius*radius
于 2013-02-16T01:51:06.167 に答える
-1

Dror によって作成されたセル参照のわずかなバリエーションを提案したいと思います。これも同様に機能します:

Range("MyCol").Rows(12)
于 2016-06-11T16:05:50.607 に答える