行和列的交集,包括if-else语句

所以我正在制作一个机械用途的容差计算器。 我创build了具有指定公差的Excel工作表。 有了这个表格,Excel需要检查用户input的是哪一列和哪一行,然后返回相交的值。

容差表

现在检查列是没有太大的问题,因为它存在的孔号码。 但是,对于Excel需要检查值是否在B和C的值之间,并使用该行进行交叉。

我的问题是,如果有可能使用正常的Excel公式,或者我必须创build一个macros? 有谁知道一个解决scheme?

提前致谢!

您可以使用CHOOSEselect列D:E,F:H或I:K,具体取决于a,b或c。

 =INDEX(CHOOSE(MATCH(B2, {"a","b","c"}, 0), D6:E9, F6:H9, I6:K9), MATCH(A2, B6:B9, 1), MATCH(C2, CHOOSE(MATCH(B2, {"a","b","c"}, 0), D5:E5, F5:H5, I5:K5), 1)) 

在这里输入图像说明

列C中的终止标称大小完全不相关。

您需要使用工作表更改事件来查看用户何时进行更改。 下面的代码将会启动你,给你一个总体的想法,它需要进入相关的工作表模块,即在VB编辑器中的“Sheet1”:

 Private Sub Worksheet_Change(ByVal Target As Range) Debug.Print "Value: " & Target.Value Debug.Print "Row: " & Target.Row Debug.Print "Col: " & Target.Column Debug.Print "Col Header y: " & Cells(Target.Row, 1).Value Debug.Print "Row Header x: " & Cells(1, Target.Row).Value End Sub 

您将需要使用这些值来决定用户值是否正确。 您需要为包含标题的行和列更新值1。 然后可以使用简单的运算符来比较它们