INDEX MATCH多个条件不起作用(#N / A)

我试图在INDEX MATCH公式中匹配2个标准(药物通用和药物包装大小)以交叉引用我拥有的2个数据库。

尽pipe阅读了这个和其他网站上的几个职位,我只是不能让这些工作。 在Office 2010中工作。

公式1尝试(在CTRL-SHIFT-ENTER中引用INDEX中的第三列):

=INDEX(i!$A$1:$F$2635, MATCH(1, ($U32=i!$A$1:$A$2635)*($Z32=i!$D$1:$D$2635), 0), 3) 

公式2尝试(使用CTRL-SHIFT-ENTER默认为INDEX中的单个列):

 =INDEX(i!$A$1:$A$2635, MATCH(1, ($U32=i!$A$1:$A$2635)*($Z32=i!$D$1:$D$2635), 0)) 

公式3尝试(默认情况下INDEX INDEX中的单列以避免ARRAY要求):

 =INDEX(i!A:A, MATCH(1, INDEX(($U66=i!A:A)*($Z66=i!D:D), 0), 0)) 

使用MATCH(1,EQUATION-ARRAY,0)方法可以很好地匹配单个标准。 两个不起作用,总是返回#N / A。

我已经确认数据在两个表单中都匹配,没有尾随或前导空格,并且匹配确实一次返回单个条件的结果。 这个问题在MATCH(…)之内,因为我已经自己拉出了这个元素(把INDEX从testing中拿出来),仍然是#N / A。

在这一点上,我试图避免串联(例如,我可以创build一个符合所有条件的string,以便在两张表中进行匹配),因为我期望可能仍然有价值的部分匹配(例如,5个标准匹配中的4个,3个5等)。

您的示例数据显示,一个数字已经从文本string中分离出来,而没有将其转换回真实数字。 简而言之,包含="99"的单元格不等于包含数字99的单元格,尽pipeCOUNTIF或COUNTIFS函数会这样说。 把一个SUM函数放在SUM(a[pack]) ,你会看到它parsing为零。

你的arrays公式AB11应该是,

 =INDEX(iphbin[generic_desc], MATCH(1, ($U11=iphbin[generic_desc])*(INT($Z11)=iphbin[pack_desc]), 0)) ' ...or, =INDEX(iphbin[generic_desc], MATCH(1, (a[@[generic (first only)]]=iphbin[generic_desc])*(INT(a[@pack])=iphbin[pack_desc]), 0)) 

数组公式需要用Ctrl + Shift + Enter 来确定(但是你知道的!)。

换句话说, “文本是文本,数字是数字,而不是两个相遇”。 (即使他们看起来一样)

FWIW,使用双重一元语法 (例如 – 或者双重减号 )预处理是另一种常见的操作,将string看起来像文本转换为实际的数字。