2017-08-07 185 views
0

我有一個表如下如何根據列和行選擇從Excel表中選擇特定值?

我想創建一個表單,我可以選擇或從可用的模型中鍵入,然後基於該模型我想從表中使用適當的sX值。

例如,我需要值s7,對於型號A20。它是1.5。我想在另一個公式中使用該值。我如何處理這個價值?

理想情況下,我希望能夠通過使用模型和s7而不是絕對的Excel單元格位置來引用該值。數據表位於另一張紙上,以防萬一。

enter image description here

+0

你開到VBA的解決方案? –

+0

我會說是的。但是,如果有一個相當簡單的僅Excel解決方案,我更喜歡 – Dennis

+0

這裏的幾個矩陣查找[excel]是:q答案:1'應該有幫助。 – pnuts

回答

2

使用INDEX()

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

您可以取代「硬編碼」的"S7""A20"與細胞refernces,從而使您可以把標題中這些細胞返回值適當的價值。

+0

'$ 1:$ 1048676'將返回範圍設置爲整頁,MATCH返回正確的行和列。在您的示例中,MATCHS將第8行和第3列返回到完整工作表參考,因此它返回工作表第8行和第3列的值。 –

+0

謝謝,我現在看到了。由於某些原因,雖然公式返回s7以上單元格的值,在這種情況下's6' ...我試圖排查爲什麼發生這種情況。調整第一個值到'B2:N100'似乎給了我想要的。但'1美元:$ 1048676',給了我意想不到的結果。 – Dennis

+0

毫米好吧我想我現在得到它..不知道爲什麼它給我的問題......謝謝! – 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 
相關問題