1

私はここであまりにも多くを求めているかもしれませんが、これは私が下のExcelテーブルから取り組んでいる要件の一部でもあります.2つの異なる値を与える場合、指定されたセルの値を見つけたいと思います、OFFSET、ExcelMATCHの関数を使用します。INDEX

2つのシナリオがあります

シナリオ 1:

value1=3500 (最初の列にはありません) と value2=75 を指定すると、Result1=1.59 と Result2=1.89 になります。

シナリオ 2:

value1=3500 と value2=85 (両方の値がグリッドの最初の行と最初の列にない) を指定すると、結果の値は Result1=1.59、Result2=1.89、Result3=1.51、Result4= 1.81` になります。

どうすればExcel内でこれを達成できますか?

Measure |2.5    |5      |10     |25     |50     |75     |100    |150    |200    
250     |0.835  |0.75   |0.69   |0.6    |0.528  |0.455  |0.383  |0.314  |0.245  
500     |1.044  |0.938  |0.863  |0.75   |0.675  |0.6    |0.525  |0.451  |0.378  
1000    |1.391  |1.25   |1.15   |1      |0.923  |0.845  |0.768  |0.689  |0.61   
2000    |1.948  |1.75   |1.52   |1.4    |1.321  |1.243  |1.164  |1.083  |1.002  
3000    |2.435  |2.188  |1.95   |1.75   |1.67   |1.59   |1.51   |1.426  |1.343  
4000    |2.853  |2.563  |2.3    |2.05   |1.97   |1.89   |1.81   |1.726  |1.643  
5000    |3.507  |3.15   |2.675  |2.4    |2.269  |2.188  |2.107  |2.021  |1.936  
10000   |       |4.553  |4      |3.72   |3.56   |3.477  |3.394  |3.304  |3.215  
15000   |       |5.691  |5      |4.6    |4.469  |4.385  |4.301  |4.209  |4.117  
20000   |       |6.545  |5.8    |5.3    |5.151  |5.066  |4.981  |4.888  |4.795  
25000   |       |7.527  |6.4    |5.83   |5.666  |5.573  |5.48   |5.377  |5.274  
50000   |       |9.785  |8.32   |7.579  |7.366  |7.245  |7.123  |6.99   |6.856  
4

4 に答える 4

1

今日、stackoverflow を閲覧しているときにこの問題に気付いたばかりで、実際に完全に対処されたことはなかったため、同じ問題に直面している個人が将来参照できるように回答することにしました。

これは、この質問に対する多くの可能なアプローチの1 つです。

メジャー テーブルが Excel ワークシートの範囲 A1:J13 に配置され、値 1 がセル A16 に、値 2 がセル C16 に、結果値 1 から 4 がセル範囲 E16:F17 に格納されているとします。 Excel 2010/2013 で次の数式を使用して、必要な情報を抽出できます。

セル E16 (結果 1 の値を格納するセル) に、次の数式を入力します。

=IF(AND(IFERROR(MATCH(A16,A1:A13,0),FALSE), IFERROR(MATCH(C16,A1:J1,0),FALSE)),INDEX((OFFSET($A$1:$J$13,(MATCH(A16,A1:A13,0)-1),(MATCH(C16,A1:J1,0)-1))),1,1), INDEX((OFFSET($A$1:$J$13,(MATCH(A16,A1:A13,1)-1),(MATCH(C16,A1:J1,1)-1))),1,1))

セル E17 (結果 2 の値を格納するセル) に、次の数式を入力します。

=IF((IFERROR(MATCH(A16,A1:A13,0),FALSE))," ", INDEX((OFFSET($A$1:$J$13,(MATCH(A16,A1:A13,1)),(MATCH(C16,A1:J1,1)-1))),1,1))

セル F16 (結果 3 の値を格納するセル) に、次の数式を入力します。

=IF((IFERROR(MATCH(C16,A1:J1,0),FALSE)),"",INDEX((OFFSET($A$1:$J$13,(MATCH(A16,A1:A13,1)-1),(MATCH(C16,A1:J1,1)))),1,1))

セル F17 (結果 4 の値を格納するセル) に、次の数式を入力します。

=IF(AND(IFERROR(MATCH(A16,A1:A13,0),FALSE)=FALSE, IFERROR(MATCH(C16,A1:J1,0),FALSE)=FALSE),INDEX((OFFSET($A$1:$J$13,(MATCH(A16,A1:A13,1)),(MATCH(C16,A1:J1,1)))),1,1)," ")
于 2015-04-13T01:45:10.263 に答える
0

正確にはあなたが望むものではありませんが、ここに私の試みがあります:

に次の数式を入力しB19、緑色の表のすべてのセルにコピー アンド ペーストします。

=IF(OR(AND($B$15=$A19,$B$16=B$18),AND($B$15>$A18,$B$15<$A20,$B$16>A$18,$B$16<C$18)),B2,0)

ここに画像の説明を入力

于 2013-07-17T18:18:13.603 に答える
0

ワークブックが名前付き範囲 Measure(B2:J13)、Value 1(B15)、Value 2(B16) に配置されていると仮定すると、式は次のようになります。

=INDEX(Measure,MATCH(Value_1,$A$2:$A$13,1),MATCH(Value_2,$B$1:$J$1,1))
=INDEX(Measure,MATCH(Value_1,$A$2:$A$13,1),MATCH(Value_2,$B$1:$J$1,1)+1)
=INDEX(Measure,MATCH(Value_1,$A$2:$A$13,1)+1,MATCH(Value_2,$B$1:$J$1,1))
=INDEX(Measure,MATCH(Value_1,$A$2:$A$13,1)+1,MATCH(Value_2,$B$1:$J$1,1)+1)

必要な値を返します。関数を使用しMATCHて行を選択し、+ 1(または同様のもの) で選択的にオフセットしてから、 を使用INDEXしてテーブル内の項目を選択します。

テーブルのレイアウトは装飾的です。列と行のラベルが完全に他の場所にあることを妨げるものは何もありません。名前付き範囲は入力値を参照します。

追加の入力値 1000、10 は、結果 1.15、1、1.52、1.4 を返します。

于 2013-07-17T19:40:39.280 に答える