提问人:Marci 提问时间:11/1/2023 更新时间:11/4/2023 访问量:126
如何在Excel中查找自定义唯一值?
How to find custom unique values in Excel?
问:
我在Excel中有以下值:。
如果我在此数组上运行 Unique 公式,则它将返回 .{"Apple", "Orange", "Orange", "Banana", "Apple}
{"Apple", "Orange", "Banana"}
问题是有时我的 Excel 值中有拼写错误,所以我可能有以下值: .这样,Unique 公式将返回以下数组: ,但是,我希望它返回 。没有拼写错误的计数值始终高于有拼写错误的值的计数。{"Apple", "Applee", "Orange", "Orange", "Orang", "Banana", "Apple}
{"Applee", "Orange", "Orang", "Banana", "Apple}
{"Apple", "Orange", "Banana"}
我想做的是,如果给定单元格的唯一字符少于 3 个,那么列表中已有的值,则不要将其计为唯一值。
是否可以只使用内置公式?我会尽量避免不惜一切代价使用 VBA。
答:
如果您在一列中设置了正确的值,然后在同一行右侧的单元格中定义可能的拼写错误,则可以使用此公式
=UNIQUE(MAP({"Apple","Applee","Orange","Orange","Orng","Banna","Apple"},LAMBDA(a,INDEX(F1:F3,INT((MATCH(1,TOROW(--(a=F1:I3)),0)-1)/4)+1,1))),TRUE)
(这是因为“查找”范围内有 4 列 -/4
F1:I3
)
评论
实现您所要求的最佳方法是维护一个常见拼写错误的单词列表及其相应的正确单词。如果列表相对较短,您可以使用该函数;如果没有,则更容易与单独的查找表一起使用。SWITCH()
XLOOKUP()
示例 1:函数SWITCH()
=SWITCH(D2:D15, "Applee","Apple", "Appel","Apple", "Banaan","Banana", "Orang","Orange", "Oranges","Orange", D2:D15)
SWITCH()
查看 Range 中的每个值,并将找到的任何匹配值替换为其相应的结果。匹配值和结果成对输入,总共最多可以包括 126 对。最后一个可选参数是未找到匹配项时返回的默认值,在本例中为 range 中存在的原始值。D2:D15
D2:D15
结果 1:
备注:上面屏幕截图中用于生成唯一列表的公式是,返回每个唯一项的计数的公式是 。监视唯一列表中是否有任何新拼写错误的单词,并在出现时更新公式。=SORT(UNIQUE(F2#))
=COUNTIF(F2#, H2#)
SWITCH()
示例 2:使用单独的查找表XLOOKUP()
=IFNA(XLOOKUP(D2:D15, K2:K6, L2:L6), D2:D15)
在此示例中,拼写错误的单词列在 range 中,相应的正确单词列在 range 中。如果 未找到匹配项,则该函数用于从 range 返回原始值,因为可选的 [if_not_found] 参数将不接受值范围。K2:K6
L2:L6
IFNA()
D2:D15
XLOOKUP()
结果 2:
示例 3:使用结构化表引用XLOOKUP()
=IFNA(XLOOKUP([@Item], Table2[Incorrect], Table2[Correct]), [@Item])
这与示例 2 的方法相同,但使用 Excel 表格。上面的公式用于在表 1 中创建一个计算列,不正确/正确的单词列表存储在表 2 中。
结果 3:
备注:上面屏幕截图中用于生成唯一列表的公式是,返回每个唯一项的计数的公式是 。=SORT(UNIQUE(Table1[Corrected]))
=COUNTIF(Table1[Corrected], G2#)
评论
Cherry
Berry