MATCH()仅返回Excel中的两个值之一

时间:2011-02-04 15:35:38

标签: excel excel-match

我使用Excel进行倾向得分匹配(不是最好的工具,我知道,但这就是作业)。

我正在使用MATCH()在colO中找到colO(即字母O)壁橱中的条目。我的调用在libreoffice中正常工作,但在Excel中没有。 colO和colM中的所有值都是概率(即,介于0和1之间)。

=MATCH(M11, O$11:O$60, 1)

如果colM中的值为零,则MATCH()返回28,这也是colO中的零。如果colM中的值大于零,则MATCH()返回50,这是colO中最小的非零值。

有什么想法吗?我通常不使用Excel。哦,这是这些专栏的顶部:

propensity  health w/o vaccine  propensity  match
0                  2           0.393115219   28
0                  1           0.280598404   28
0.747918388        0           0             50
0.843491818        0           0             50
0.707782271        0           0             50
0.829627573        0           0             50
0.515298454        0           0             50
0.464636469        0           0             50
0.705333684        0           0             50
0                  3           0.641132271   28
0                  4           0.366445099   28
0.590387706        0           0             50
0.859441341        0           0             50
0                  2           0.304260844   28
0                  3           0.725971617   28

1 个答案:

答案 0 :(得分:1)

当您使用1或-1(非零)作为MATCH的第三个参数时,需要对列O进行排序。如果要在未排序列表中找到最接近的匹配项,则需要使用数组公式

=MATCH(MIN(ABS(M11-$O$11:$O$25)),ABS(M11-$O$11:$O$25),FALSE)

使用Control + Shift + Enter输入数组公式,而不仅仅是输入。 Excel会在公式周围加上花括号。

第一个参数找到M11与列O中每个值之间的最小差异。第二个参数是所有差异的完整列表。 MATCH将该最小值与完整列表匹配,并返回找到它的行。我得到了

3
3
15
15
15
15
1
1
15
3
3
10
15
3
3

乍一看看起来是正确的。将公式中的$ O $ 25更改为O列中的数据末尾。