32

関数を使用して動的に構築された範囲でチャートを作成しようとしていINDIRECTます。INDIRECTExcel は、シート上の対応する範囲を強調表示するため、作成している範囲を認識します。

ここに画像の説明を入力

ただし、チャートを保存すると、関数が無効であるというエラー メッセージが表示されます。

ここに画像の説明を入力

問題が何であるか/特定の開始点から特定の終了点までの動的チャート範囲を作成する方法を知っている人はいますか?

PS:上記のスプレッドシートはこちらからダウンロードできます。私が使用していた式:
=INDIRECT("sheet!"&E2&":"&E3)

4

7 に答える 7

25

あなたがやろうとしている方法は不可能です。チャート データ範囲には固定アドレスが必要です。

これを回避する方法があり、それは名前付き範囲を使用しています

データに必要な行数をセルに入れます(例:E1)
だから、あなたの例を使ってNumber of RowsD1E16に入れます

名前マネージャーで、xrangeyrange
を使用したデータとタイトルの名前を定義し、次のように定義しました。

xrange: =OFFSET(Sheet1!$A$2,0,0,Sheet1!$E$1)
yrange: =OFFSET(Sheet1!$B$2,0,0,Sheet1!$E$1)

今、あなたのチャートに - ワークブックの名前を知る必要があります (ワークブックを設定すると、変更を追跡する Excel の機能により、名前の変更に関係なく、参照が正しいままであることを確認できます)。

Chart data rangeを空白のまま
にしてLegend Entries (Series)、通常どおりタイトルを入力し、データに定義した名前を入力します (名前付き範囲を使用するにはワークブック名​​が必要であることに注意してください)。
データポイント

にはHorizontal (Category) Axis Labels、ラベルに定義した名前を入力します
データ ラベル

ここで、E1 の数値を変更すると、チャートが次のように変化します。
E1で6E1で4

于 2013-08-16T14:08:14.683 に答える
19

私のはショーンの優れた答えに似ていますが、開始日と終了日を許可します。まず、Index/Match 式を使用して E2 と E3 に基づいて開始日と終了日を選択する 2 つの名前付き範囲を作成します。

rngDay

=INDEX(Sheet1!$A:$A,MATCH(Sheet1!$E$2,Sheet1!$A:$A,0)):INDEX(Sheet1!$A:$A,MATCH(Sheet1!$E$3,Sheet1!$A:$A,0))

rngValue

=INDEX(Sheet1!$B:$B,MATCH(Sheet1!$E$2,Sheet1!$A:$A,0)):INDEX(Sheet1!$B:$B,MATCH(Sheet1!$E$3,Sheet1!$A:$A,0))

次に、グラフ内の系列をクリックして、式を次のように変更できます。

=SERIES(Sheet1!$B$1,Sheet1!rngDay,Sheet1!rngValue,1)

ここに画像の説明を入力

チャートでダイナミック レンジを使用する方法については、Chandooの素敵な投稿をご覧ください。

于 2013-08-16T14:41:15.543 に答える
4

ビットとグーグルのもう1つの答え..

それでも開始セルと終了セルを参照したい場合は、日の範囲と値の範囲に別の数式を追加する必要があります。数式は以下にあり、スクリーンショットは使用された数式を示しています。

日の範囲:

="Sheet1!"&$F$2&":"&ADDRESS(ROW(INDIRECT($F$3)),COLUMN(INDIRECT($F$2)))

値の範囲:

="Sheet1!"&ADDRESS(ROW(INDIRECT($F$2)),COLUMN(INDIRECT($F$3)))&":"&$F$3

ここに画像の説明を入力

INDIRECT次に、それらのセルの値を参照する 2 つの範囲を追加します

Ctrl+F3 を押し、[新規] をクリックして、「chart_days」という名前の新しい範囲を追加し=INDIRECT(Sheet1!$F$4)ます。を参照する「chart_values」という名前の新しい範囲=INDIRECT(Sheet1!$F$5)

最後に、グラフに次を参照するシリーズを追加します。=nameOfYourWorkbook!chart_values

参照するカテゴリを編集します=nameOfYourWorkbook!chart_days

于 2013-08-16T14:57:52.970 に答える
0

あなたが示した式によると: =INDIRECT("sheet!"&E2&":"&E3) シートに正しく名前を付けていません。

Sheet1だと思っていたでしょう!または Sheet2! など。式は有効なアドレスではない =sheet!E2:E3 に解決されます。表示されるエラー メッセージは、Excel が入力を INDIRECT に解決できないことを意味します。INDIRECT有効な関数であるため、提供する引数は無効でなければなりません。

シート名を示す上記の回答はすべてエラーを修正しましたが、言及していません... ;)

于 2015-12-29T06:43:32.933 に答える