Excel-如何从多个(>2)列中查找常见文本值?

Excel-如何从多个(>2)列中查找常见文本值?

我有 9 列文本数据,需要知道所有 9 列(或可能是不同的列组合)中出现的常用术语。我可以处理 2 列,=IF(ISERROR(MATCH(A1,$C$1:$C$133,0)),"",A1)并且可以找到整个电子表格中重复的文本值,但不知道如何查看多个不同列中的常见文本值。

有没有办法修改=IF(ISERROR(MATCH(A1,$C$1:$C$133,0)),"",A1)公式,以便我可以比较 3、4、... 9 列,而不仅仅是 2 列?如果有帮助的话,我正在使用 Microsoft 2013。

答案1

我有一个可行的解决方案,但它有点丑陋。我假设您正在查看单元格 A1,看看它是否出现在所有 3 列(D、E、F)中。

=MIN(MAX(($D$1:$D$3=$A1)*1),MAX(($E$1:$E$3=$A1)*1),MAX(($F$1:$F$3=$A1)*1))

这是一个数组公式,因此需要输入Ctrl+Shift+回车

现在从内到外,它是如何工作的

($D$1:$D$3=$A1)*1将 D1 到 D3 与 A1 进行比较,返回 true 或 false *1 将其转换为 1 和 0

最大限度如果第一个公式在 D 列中找到匹配项,则返回 Max 将返回的 1。如果未找到匹配项,则最大(唯一)值为零。

分钟如果所有列都包含匹配项,则所有最大公式都将包含 1,因此最小值为 1。如果所有列中都没有匹配项,则最小值为零。

如果要计算匹配的列数,请使用 sum 而不是 min 和 rememeberCtrl+Shift+回车

注意:您要搜索的每一列都会有一个最大公式。

在此处输入图片描述

答案2

此设置适用于任意数量的列。

首先进入名称管理器(公式选项卡)并定义以下内容:

Name: Range1
Refers to: =$A$1:$I$8

(或者无论所讨论的范围是什么。)

Name: Arry1
Refers to: =COLUMN(Range1)-MIN(COLUMN(Range1))

Name: Arry2
Refers to: =ROW(INDEX(Range1,,1))-MIN(ROW(INDEX(Range1,,1)))+1

Name: Arry3
Refers to: =MMULT(0+(COUNTIF(OFFSET(INDEX(Range1,,1),,Arry1,,),INDEX(Range1,,1))>0),ROW(INDIRECT("1:"&COLUMNS(Range1)))^0)

退出名称管理器。

所需数组公式那么:

=IFERROR(INDEX(INDEX(Range1,,1),SMALL(IF(FREQUENCY(IF(INDEX(Range1,,1)<>"",IF(Arry3=COLUMNS(Range1),MATCH(INDEX(Range1,,1),INDEX(Range1,,1),0))),Arry2),Arry2),ROWS($1:1))),"")

一直复制下去直到结果变为空白。

问候

数组公式的输入方式与“标准”公式不同。Enter您不必只按 ,而是先按住CtrlShift,然后再按Enter。如果您操作正确,您会注意到 Excel 会{}在公式周围加上花括号(但不要尝试自己手动插入这些括号)。

答案3

我认为使用 countif 可以取得很大进展:

在此处输入图片描述

相关内容