web-dev-qa-db-ja.com

Excelセル値に基づいて範囲を定義します

セルで指定された値に基づいて範囲を定義することは可能ですか?.

たとえば、次のようになります。私の選択はA1:A5で、5つのセルです。セル値(B1など)を5に設定することで、Excelにこれを決定させることは可能ですか?.

セル値を1回変更するだけで、多くの範囲を簡単に変更することを目的としています。したがって、セル値(B1)を6に変更すると、範囲は自動的にA1:A6に変更されます。

さらに具体的には、逆にしたいと思います。

最後の例:選択範囲はA6:A10(これは5つのセルです)。 B1の値は5です。B1の値を6に変更すると、範囲はA5:A10に変わります。

誰か助けてもらえますか???

23
user3491168

セルA1、A2、A3、A4、A5、A6にそれぞれ番号1,2,3,4,5,6があるとします。セルA7では、A1:Axの合計を計算します。 xはセルB1で指定されます(この場合、xには1〜6の任意の数値を指定できます)。セルA7では、次の数式を記述できます。

=SUM(A1:INDIRECT(CONCATENATE("A",B1)))

CONCATENATEは、セルAxのインデックスを提供します(B1に3を入力すると、CONCATENATE( "A"、B1))はA3を提供します)。

「A3」を間接的にインデックスに変換します。

このリンクを参照してください セルの値を数式のセル参照として使用しますか?

15
Cici

OFFSETを使用することもできます。

OFFSET($A$10,-$B$1+1,0,$B$1)

範囲$ A $ 10を$ B $ 1-1だけ上に移動し($ A $ 6($ A $ 5)になります)、次に範囲を$ B $ 1行にサイズ変更します($ A $ 6:$ A $ 10($ A $ 5:$になります) A $ 10))

5
Siphor

ここにオプションがあります。開始セルのROWおよびCOLUMNからINDIRECT(ADDRESS(...))を作成することで機能します。_A1_、最初の行+保持されている行の数まで_B1_で。

_SUM(INDIRECT(ADDRESS(ROW(A1),COLUMN(A1))):INDIRECT(ADDRESS(ROW(A1)+B1,COLUMN(A1))))
_

_A1_:「A」列のデータの開始

_B1_:は合計する行の数です

2
jackal23

@Ciciの回答に基づいて、ここでより一般的なソリューションを示します。

= SUM(INDIRECT(CONCATENATE(B1、C1)):INDIRECT(CONCATENATE(B2、C2)))

イタリア語版のExcelの場合:

= SOMMA(INDIRETTO(CONCATENA(B1; C1)):INDIRETTO(CONCATENA(B2; C2)))

B1-C2セルがこれらの値を保持する場所:

  • A、1
  • A、5

これらの値を変更して、必要に応じて最終的な範囲を変更できます。


数式をパーツに分割する:

  • SUM(INDIRECT(CONCATENATE(B1、C1))):INDIRECT(CONCATENATE(B2、C2)))
  • CONCATENATE(B1、C1)-結果はA1
  • INDIRECT(CONCATENATE(B1、C1))-結果はA1への参照です

したがって:

= SUM(INDIRECT(CONCATENATE(B1、C1)):INDIRECT(CONCATENATE(B2、C2)))

結果として

= SUM(A1:A5)


ここでは、イタリアのユーザー向けのSEOキーワードをいくつか書き留めます。

  • excelで間隔を空けてください
  • excelで定義された間隔ごとの数式。

Con la formula indicata qui sopra basta scrivere nelle caselle da B1 a C2 gli estremi Dell'intervallo per vedelo cambiare dentro la formula stessa。

1
jumpjack

これは、最初の例を探しているものに近いはずです。

=SUM(INDIRECT("A1:A"&B1,TRUE))

これは、最終的な例を探しているものに近いはずです。

=SUM(INDIRECT("A"&1+B1&":A"&B1,TRUE))
1
Stepan1010