excel - 从多列中删除重复项,以便输出在 excel 中是唯一的
问题描述
我有这两个列:
Column 1 Column 2
A E
B F
C B
D A
G
我需要比较这两列,所以输出必须是:
Column 3
A
B
C
D
E
F
G
解决方案
这可以通过像这样从单元格 C2 开始的公式来完成:
=IFERROR(INDEX($A$2:$A$5,MATCH(0,INDEX(COUNTIF($C$1:C1,$A$2:$A$5),,),)),IFERROR(INDEX($B$2:$B$6,MATCH(0,INDEX(COUNTIF($C$1:C1,$B$2:$B$6),,),)),""))
这是一个常规(非数组)公式。
请注意,虽然结果看起来已排序,但没有排序,它是按照遇到值的顺序报告的。
我知道这不是请求的一部分,但既然我提到了它,如果我们希望列表排序尽管原始列的顺序,我认为这个公式输入到 C2 并复制下来将作为一个数组公式使用 [ Ctrl]+[Shift]+[Enter]:
=IFERROR(INDEX($A$2:$B$6, SMALL(IF(SMALL(IF(COUNTIF($C$1:C1, $A$2:$B$6)+ISBLANK($A$2:$B$6)=0, COUNTIF($A$2:$B$6, "<"&$A$2:$B$6)+1, ""), 1)=IF(ISBLANK($A$2:$B$6), "", COUNTIF($A$2:$B$6, "<"&$A$2:$B$6)+1), ROW($A$2:$B$6)-MIN(ROW($A$2:$B$6))+1), 1), MATCH(MIN(IF(COUNTIF($C$1:C1, $A$2:$B$6)+ISBLANK($A$2:$B$6)>0, "", COUNTIF($A$2:$B$6, "<"&$A$2:$B$6)+1)), INDEX(IF(ISBLANK($A$2:$B$6), "", COUNTIF($A$2:$B$6, "<"&$A$2:$B$6)+1), SMALL(IF(SMALL(IF(COUNTIF($C$1:C1, $A$2:$B$6)+ISBLANK($A$2:$B$6)=0, COUNTIF($A$2:$B$6, "<"&$A$2:$B$6)+1, ""), 1)=IF(ISBLANK($A$2:$B$6), "", COUNTIF($A$2:$B$6, "<"&$A$2:$B$6)+1), ROW($A$2:$B$6)-MIN(ROW($A$2:$B$6))+1), 1), , 1), 0), 1),"")
请参阅下面的一组修改后的原始值。我将输入列引用为一个范围,这使得它有点复杂,因为我必须删除空白值。
推荐阅读
- typescript - 有谁知道如何通过 Typescript 在 API 中使用 delete 方法?
- c++ - 如何检查 GENERIC lambda 是否可以使用某种输入参数类型调用?
- go - 访问结构属性的空接口以避免代码重复
- c - 从命令行迭代 ls 程序的选项
- sql - 收到此错误:无法绑定多部分标识符“c.hrmort”
- webpack - Webpack 不压缩 javascript
- reactjs - react.js & tailwind.css 项目没有正确部署到heroku
- javascript - 使用 jQuery 在 JSON/Array/Object 中选择存储选项
- html - 有什么作用?在 HTML 绝对链接中的意思
- python - Python 类中的嵌套方法