2017-08-07 12 views
0

私は以下のようなテーブルを持っています列と行の選択に基づいてExcelテーブルから特定の値を選択する方法を教えてください。

利用可能なモデルからモデルを選択または入力し、そのモデルに基づいてテーブルから適切なsX値を使用したいフォームを作成します。

例えば、A20の場合、値s7が必要です。 1.5です。他の数式でその値を使用したいと思います。どのように私はその価値に対処しますか?

理想的には、絶対Excelのセルの場所ではなく、モデルとs7を使用して値を参照できます。データテーブルは、重要な場合に備えて、別のシートに配置されています。

enter image description here

+0

あなたは、VBAソリューションに開かれていますか? –

+0

私は「はい」と言います。しかし、合理的にシンプルなExcel専用ソリューションがあれば、私はそれを好むだろう。 – Dennis

+0

行列の検索[Excel]はいくつかある:q answers:1'が役立つはずだ。 – pnuts

答えて

2

利用INDEX()

=INDEX($1:$1048676,MATCH("S7",$A:$A,0),MATCH("A20",$1:$1,0)) 

あなたは、このようにあなたが返すように、これらの細胞中のタイトルを入れすることができ、細胞referncesで"S7""A20"の「ハードコード」の値を置き換えることができます適切な値。ここで

+0

'$ 1:$ 1048676'はリターン範囲をフルページに設定し、MATCHは適切な行と列を返します。あなたの例では、MATCHSは8行目と3列目をシート全体の参照に戻します。したがって、シートの8行目と3列目の値を返します。 –

+0

ありがとう私は今それを見る。何らかの理由で式がs7より上のセルの値を返しますが、この場合は 's6'です...なぜそれが起こっているのかをトラブルシューティングしようとしています。その最初の値を 'B2:N100'に調整することは、私が望むものを私に与えるようです。しかし、「$ 1:$ 1048676」は予期しない結果をもたらします。 – Dennis

+0

mm大丈夫私は今それを得たと思うなぜ私は問題を与えていたかわからない...ありがとう! – Dennis

1

がテーブルからあなたに出力を与えるためにモデルとSX値を受け入れるコードで、

Sub searchTable() 
Dim i As Long, j As Long 
sx = InputBox("Enter sX value") 
Model = InputBox("Enter the model") 
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row 
    If Cells(i, 1) = sx Then 
     Exit For 
    End If 
Next i 
For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column 
    If Cells(1, j) = Model Then 
     Exit For 
    End If 
Next j 
'This is the value that you need, which can be used somewhere in your program 
MsgBox Cells(i, j) 
End Sub