2017-08-07 186 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 
相关问题