2

名前付き範囲として保存された 3 つのテーブルがあります。
ユーザーは、ドロップダウン ボックスを使用して検索する範囲を選択します。名前付き範囲はTable1Table2およびTable 3です。

表1

    0.7     0.8     0.9
50  1.08    1.06    1.04
70  1.08    1.06    1.05
95  1.08    1.07    1.05
120 1.09    1.07    1.05

表2

    0.7     0.8     0.9
16  1.06    1.04    1.03
25  1.06    1.05    1.03
35  1.06    1.05    1.03

表 3

    0.7     0.8     0.9
50  1.21    1.16    1.11
70  1.22    1.16    1.12
95  1.22    1.16    1.12
120 1.22    1.16    1.12

次に、ヘッダー行から値を選択し、最初の列から値を選択します。
つまり、ユーザーは 、Table30.8および を選択し95ます。私の式は を返すはず1.16です。

indirect( )を使用して途中まで行っていtable1ますが、次のようなものを使用できるように、ヘッダー行と最初の列を抽出する必要があります

=INDEX(INDIRECT(pickedtable),MATCH(picked colref,INDIRECT(pickedtable:1)), MATCH(picked rowref,INDIRECT(1:pickedtable)))

これを達成する方法はありますか?

4

2 に答える 2

1

INDIRECT(pickedtable)テーブルを取得するには問題なく動作するはずですが、テーブルから最初の列または行を取得するINDEXには、それで使用できるため、元のアプローチに従って、この式が機能するはずです

=INDEX(INDIRECT(pickedtable),MATCH(pickedcolref,INDEX(INDIRECT(pickedtable),0,1),0),MATCH(pickedrowref,INDEX(INDIRECT(pickedtable),1,0),0))

または、クリス・ニールセンのアプローチに従ってHLOOKUPorを使用して短縮することもできます。VLOOKUPVLOOKUP

=VLOOKUP(pickedcolref,INDIRECT(pickedtable),MATCH(pickedrowref,INDEX(INDIRECT(pickedtable),1,0),0))
于 2013-02-21T15:32:24.147 に答える
0

これを試して

=HLOOKUP(pickedcolref,
  IF(pickedtable=1,Table1,IF(pickedtable=2,Table2,IF(pickedtable=3,Table3,""))),
  MATCH(pickedrowref,
    OFFSET(
      IF(pickedtable=1,Table1,IF(pickedtable=2,Table2,IF(pickedtable=3,Table3,""))),
    0,0,,1)
  ,0)
 ,FALSE)
于 2013-02-21T08:52:51.330 に答える