Countif 数据不等于范围内的任何数字

Countif data does not equal any number in a range

提问人:Kate Gannon 提问时间:6/9/2023 最后编辑:OsmKate Gannon 更新时间:10/26/2023 访问量:63

问:

我正在制作一个 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

非常感谢。

google-sheets 过滤器 匹配 唯一 计数

评论


答:

1赞 Osm 6/9/2023 #1

我为您
创建了一个示例数据 试试这个公式

=IFERROR(FILTER(A2:A, ISERROR(MATCH(A2:A,TOCOL(UNIQUE(B2:E)) , FALSE))), "No Match")

enter image description here

解释:

此公式用于根据 B 列和 E 列中的值是否匹配来筛选 A 列中的值范围。让我们一步一步地分解公式:

  1. UNIQUE(B2:E)返回从 B 列到 E 列的唯一值列表。它通过垂直堆叠这些列中的值来创建唯一值的单个列。

  2. TOCOL(UNIQUE(B2:E))通过转置唯一值的列将其转换为行。此步骤是必需的,因为 MATCH 函数适用于行向量,我们希望将其与 A 列中的值进行比较。

  3. MATCH(A2:A, TOCOL(UNIQUE(B2:E)), FALSE)将 A 列 (A2:A) 中的每个值与 B 列到 E 列中的唯一值进行比较。它返回唯一值列表中匹配值的相对位置,如果没有匹配项,则返回错误值 (#N/A)。

  4. ISERROR(MATCH(A2:A, TOCOL(UNIQUE(B2:E)), FALSE))检查 A 列中的每个值是否存在错误(不匹配)。它返回 TRUE 和 FALSE 值的数组,其中 TRUE 表示不匹配,FALSE 表示匹配。

  5. FILTER(A2:A, ISERROR(MATCH(A2:A, TOCOL(UNIQUE(B2:E)), FALSE)))根据从上一步获取的 TRUE 和 FALSE 值数组筛选 A 列中的值。它仅返回 A 列中 B 列与 E 列不匹配的值。

  6. 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

1赞 Harun24hr 6/9/2023 #2

简单应该与功能一起工作。COUNTIFS()FILTER()

=FILTER(A2:A,INDEX(COUNTIFS(B2:E,A2:A))=0)

enter image description here