具有间接匹配和部分匹配的索引匹配?

问题描述 投票:0回答:2

我有一个Ztable,我想将其用作基于我得到的Zscore的公式中的查找。我的Z分数为0.84,该表的工作方式是,您查看的第一列为0.8,然后转到列0.04,因为那是0.84的第二个小数(因此它们合并在一起),您就可以得到查找值。

我正在尝试使用“索引匹配”公式来实现这一目标,尽管由于某些原因它拒绝工作,即使该公式的所有部分都可以正常工作:Excel Online中的示例: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))
excel lookup
2个回答
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))

将第二列标题从0更改为0.00,否则将找不到小数点后一位的值。

enter image description here


0
投票

简短的答案是'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是正确的,不使用间接方法,可能会有更好的方法。

© www.soinside.com 2019 - 2024. All rights reserved.