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

发布于 2024-10-15 15:38:28 字数 1182 浏览 0 评论 0原文

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

我正在使用 MATCH() 来查找 colO(即字母 O)中与 colM 中的条目最接近的条目。我的通话在 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

I am using Excel to do propensity score matching (not the best tool for this, I know, but that's the assignment).

I am using MATCH() to find the entry in colO (that's letter O) closet to the entry in colM. My call works properly in libreoffice, but not in Excel. All the values in colO and colM are probabilities (i.e., between zero and one inclusive).

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

If the value in colM is zero, then MATCH() returns 28, which is also a zero in colO. If the value in colM is greater than zero, then MATCH() returns 50, which is the smallest non-zero value in colO.

Any ideas? I don't typically use Excel. Oh, and here's the top of these columns:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深者入戏 2024-10-22 15:38:28

当您使用 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 列中数据的末尾。

When you use 1 or -1 (not zero) as the third argument of MATCH, column O needs to be sorted. If you want to find the closest match on an unsorted list, you need to use an array formula

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

Enter an array formula with Control+Shift+Enter, not just enter. Excel will put curly braces around the formula.

The first argument finds the minimum difference between M11 and every value in Column O. The second argument is a complete list of all the differences. The MATCH matches that minimum value to the complete list and returns the row on which it's found. I get

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

Which at first glance looks correct. Change the $O$25 in the formula to the end of your data in column O.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文