我试图在INDEX MATCH公式中匹配2个标准(药物通用药物和药物包装大小)来交叉引用我拥有的2个数据库。
尽管在这个和其他网站上阅读了几篇帖子,但我无法让这些文章发挥作用。在Office 2010工作。
公式1尝试(使用CTRL-SHIFT-ENTER引用INDEX中的第3列):
=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)并且仍然是#N / A.
我正在寻求避免此时的连接(例如,我可以创建一个包含所有标准的字符串以在两个表格中匹配),因为我期望部分匹配仍然有价值(例如,5个标准中的4个)比赛,5比3等)。
答案 0 :(得分:1)
您的示例数据显示数字已从文本字符串中拆分,而未将其转换回真实数字。简而言之,包含="99"
的单元格不等于包含数字 99 的单元格,即使COUNTIF或COUNTIFS function会说它也是如此。在SUM(a[pack])
上加SUM function,您会看到它解析为零。
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,使用双一元(例如 - 或双减)作为前缀是将看起来像文本的字符串转换为实际数字的另一种常见做法。 / p>