提问人:Kate Gannon 提问时间:6/9/2023 最后编辑:OsmKate Gannon 更新时间:10/26/2023 访问量:63
Countif 数据不等于范围内的任何数字
Countif data does not equal any number in a range
问:
我正在制作一个 Google 表格,我正在输入邮政编码信息。A 列将包含从调查受访者那里收到的邮政编码。
B、C、D 和 E 列包括不同地区的邮政编码参考列表。我需要知道每组邮政编码中有多少受访者,所以我使用这个公式来计算:
=sumproduct(countif(A2:A1000,B2:B1000))
我正在寻找一个公式来捕获在 A 列中输入的任何数字,该数字与我在 B、C、D 和 E 列中的任何参考邮政编码不匹配。
我试过:
=sumproduct(countif(A2:A1000,<>B2:B1000))
并且收到公式解析错误。
我看到的大多数示例都使用非常小的数据集,因此它们使用的公式是 ,但我使用的是大数据范围,因此这并不是特别有用。=sumproduct(countif(A2:A1000,<>"DATA"))
我见过的其他一些看似相似的例子是推荐的公式,这些公式比我熟悉的公式更复杂,所以我无法挑选出可能对我有用的公式。
编辑:示例数据
A 列 | B区 | C区 | D区 | E区 |
---|---|---|---|---|
78040 | 72744 | 90806 | 55975 | 73098 |
71369 | 65501 | 26743 | 56051 | 79022 |
13375 | 85739 | 40830 | 18640 | 51461 |
24312 | 45333 | 54554 | 35211 | 54821 |
44089 | 84656 | 50612 | 31326 | 95471 |
70762 | 17087 | 25387 | 24312 | 30650 |
73098 | 50611 | 60435 | 77612 | 49712 |
79022 | 8316 | 28204 | 51245 | 97450 |
37668 | 75495 | 46381 | 94539 | 72014 |
43021 | 21056 | 32212 | 57249 | 26542 |
84656 | 43152 | 26691 | 38345 | 30116 |
44188 | 29848 | 27966 | 71369 | 95683 |
25387 | 17881 | 99701 | 62474 | 53593 |
85974 | 98565 | 72088 | 22835 | 40517 |
50247 | 35572 | 34472 | 45732 | 99753 |
94279 | 20765 | 4463 | 32828 | 85718 |
56332 | 99031 | 45415 | 97520 | 41512 |
55303 | 43446 | 37803 | 94102 | 75803 |
81229 | 42061 | 95960 | 42036 | 98.7千米赛 |
18640 | 15142 | 72031 | 39114 | 97026 |
53593 | 26448 | 23486 | 12915 | 7017 |
72785 | 6256 | 68661 | 19137 | 15696 |
46381 | 97753 | 17052 | 17880 | 93106 |
40517 | 83011 | 46710 | 52165 | 79539 |
51245 | 24566 | 56332 | 88116 | 15325 |
22162 | ||||
24566 | ||||
89041 |
非常感谢。
答:
我为您
创建了一个示例数据 试试这个公式
=IFERROR(FILTER(A2:A, ISERROR(MATCH(A2:A,TOCOL(UNIQUE(B2:E)) , FALSE))), "No Match")
解释:
此公式用于根据 B 列和 E 列中的值是否匹配来筛选 A 列中的值范围。让我们一步一步地分解公式:
UNIQUE(B2:E)
返回从 B 列到 E 列的唯一值列表。它通过垂直堆叠这些列中的值来创建唯一值的单个列。TOCOL(UNIQUE(B2:E))
通过转置唯一值的列将其转换为行。此步骤是必需的,因为 MATCH 函数适用于行向量,我们希望将其与 A 列中的值进行比较。MATCH(A2:A, TOCOL(UNIQUE(B2:E)), FALSE)
将 A 列 (A2:A) 中的每个值与 B 列到 E 列中的唯一值进行比较。它返回唯一值列表中匹配值的相对位置,如果没有匹配项,则返回错误值 (#N/A)。ISERROR(MATCH(A2:A, TOCOL(UNIQUE(B2:E)), FALSE))
检查 A 列中的每个值是否存在错误(不匹配)。它返回 TRUE 和 FALSE 值的数组,其中 TRUE 表示不匹配,FALSE 表示匹配。FILTER(A2:A, ISERROR(MATCH(A2:A, TOCOL(UNIQUE(B2:E)), FALSE)))
根据从上一步获取的 TRUE 和 FALSE 值数组筛选 A 列中的值。它仅返回 A 列中 B 列与 E 列不匹配的值。IFERROR 使用 IFERROR
函数包装步骤 5 中的筛选值。如果 FILTER 函数返回任何值,则显示这些值。否则,如果没有匹配项,则显示文本“No Match”。(FILTER(A2:A, ISERROR(MATCH(A2:A, TOCOL(UNIQUE(B2:E)), FALSE))), "No Match")
根据需要,该公式筛选 A 列中的值,并仅返回 B 列与 E 列中不匹配的值。如果没有匹配项,则显示文本“No Match”,您可以将“No Match”替换为“”以不返回任何内容。
使用的公式帮助
IFERROR
- FILTER
- ISERROR
- MATCH
- UNIQUE
简单应该与功能一起工作。COUNTIFS()
FILTER()
=FILTER(A2:A,INDEX(COUNTIFS(B2:E,A2:A))=0)
评论