2017-07-07 4 views
0

A6のセルの内容の合計がRbStartからRbEndの範囲にあるこの式を検討してください。シート全体のExcel SUM:現在のセルに基づいて行を決定します。

=SUM(RbStart:RbEnd!A6) 

それは現在のセルの行から行番号を取るという意味でA6をダイナミックにする方法はありますか?依頼された理由は、私の最初のシート(RbStartRbEndはシートの動的番号を含めることができるようにするだけヘルパーシートである。)RbStartRbEndの間に位置する、他のシートの動的数を統合シートであること

あります最初のシートの行は動的です。追加の行を追加すると、Excelが自動的にセル参照を更新するので、これは問題ありません。問題は、技術的な理由から、行生成中に空白の行があり、後で削除されるということです。しかし、そうすると、Excelは数式を更新しないので、合計した動的シートと同期が外れます。

次のようにして、これをシミュレートすることができます

  1. をセルA6で私の式を入れてください。
  2. ドラッグしてコピーします。次に行の式9ないがA10を意味方法、たとえば、行9ノートを削除
  3. など、後続の行では、それはA7なる方法注A8A9A10

ダイナミックシート上で同じ空白行が削除されるため、間違った行が参照されるようになりました。私は何とかSUM式を変更して、A6の代わりに現在のセルがある行を取るなら、問題は解決されます。

私は理に適っていると思います。明確にするのは楽しいです。

+0

間接式https://support.office.com/en-us/article/INDIRECT-function-474b3a3a-8a26-4f44-b491-92b6306fa261 – user2023861

+0

私はそれを試しましたが、私はそれを得ることができませんでした働く –

答えて

0

まあ、私の心に来た最初の事は式

=SUM(INDIRECT("'Sheet1:Sheet3'!A"&ROW())) 

下に使用することでした。しかし、その後、私はINDIRECTが、ここでは動作しません実現しました。

したがって、すべてのシートの名前をどこかにリストし、数式にそのリストを参照する必要があります。指定された範囲を使用する方が良いオプションになります。名前付き範囲の詳細については、this linkを参照してください。必要に応じて、このリストにシート名を追加/削除することができます。その後は次の式

=SUMPRODUCT(SUMIF(INDIRECT("'" & NamedRange &"'!A" & ROW()),"<>0")) 

か、配列数式なので

配列数式以下
=SUM(N(INDIRECT(NamedRange & "!A"&ROW()))) 

を使用することができますを使用することができ、Ctrlキー + Shiftキーを押すことによって、それをコミット + を入力します。

名前付き範囲の代わりにセル範囲を直接使用することもできます。あなたはCell AA1:AA5にシート名のリストを持っていると仮定すると、次の式は、他のオプションは、VBAを使用することです

SUMPRODUCT(SUMIF(INDIRECT("'" & $AA$1:$AA$5 &"'!A" & ROW()),"<>0")) 

になります。

+0

@RoelVlemmings - これが役に立ちましたか? – Mrig

関連する問題