索引匹配与间接匹配和部分匹配?

Index Match with Indirect and partial match?

我有一个 Ztable,我想根据我得到的任何 Zscore 在公式中用作查找。我的 Z 得分为 0.84,table 的工作方式是,您查看第一列 0.8,然后转到第 0.04 列,因为这是 0.84 的小数点后第二位(因此它们合并),然后您可以进行查找值。

我正在尝试使用索引匹配公式来实现这一点,但由于某种原因它拒绝工作,即使公式的所有部分单独工作都很好: Excel在线示例:https://1drv.ms/x/s!ArOlf1rKamjocy6zekCl8cG3lAc?e=6ZzuTc

整个公式:

=1-
INDEX(
INDIRECT("Table1[0.0"&RIGHT(E2,1)&"]"),
MATCH(
LEFT(E2,(FIND(".",E2,1)+1)),
Table1[Z],0))

0.84放在E2

另外,我从这个公式中得到 0.8:

=LEFT(E2,(FIND(".",E2,1)+1))

..我用这个公式得到了对第 0.04 列的引用:

=INDIRECT("Table1[0.0"&RIGHT(E2,1)&"]")

那么为什么索引匹配公式会失败?如果我把公式写得干净利落,我会得到 0.7995:

=INDEX(Table1[0.04],MATCH(0.8,Table1[Z],0))

你不需要INDIRECT。试试这个公式:

=INDEX(Table1[[0]:[0.09]],MATCH(ROUNDDOWN(E2,1),Table1[Z],0),MATCH(TEXT((E2-ROUNDDOWN(E2,1)),"0.00"),Table1[[#Headers],[0]:[0.09]],0))

将第二列header由0改为0.00,否则将找不到小数点后一位的值。

简短的回答是 'Z' 列中的值是数字,因此您需要将字符串 LEFT(E2,(FIND(".",E2,1)+1)) 转换为查找之前的数字:

=1-INDEX(INDIRECT("Table1[0.0"&RIGHT(E2,1)&"]"),MATCH(--LEFT(E2,(FIND(".",E2,1)+1)),Table1[Z],0))

但是@basic 是对的,可能有更好的方法可以不使用 Indirect。