如何选择比较两个不同 excel 列的唯一值?
How do I pick unique values comparing two different excel columns?
我目前正在从 Windows 目录导出 CSV 文件,将端点与服务器文件进行比较。
我在 CSV 文件上有文件的完整路径、文件名、大小和 MD5 哈希值。
我们知道目录结构几乎相同,只有细微差别。
我试图在 excel 上实现的是获取具有相同名称但不同 MD5 的 MD5 值。
我目前的障碍是我无法找到一种方法来告诉 excel 通过 table 并仅选择在两个 table 上都是唯一的 MD5 哈希(服务器和端点)。
为简单起见,此table按名称排序,但在excel中我没有名称重合,
说:
ServerName
ServerHash
-
EndName
EndHash
NameA
ABCD1234
-
NameA
ABCD1234
NameB
DCBA4321
-
NameB
DIFFHASH
NameC
HASHFINE
-
NameC
HASHFINE
NameD
ABCD1234
-
过滤后的结果:
ServerName
ServerHash
-
EndName
EndHash
NameB
DCBA4321
-
NameB
DIFFHASH
NameD
ABCD1234
-
我尝试“删除重复项”,但我认为该工具仅在同一列中查找,不会在 ServerHash 和 EndHash 之间进行交叉比较。
有更简单的方法吗?
谢谢
因为您无论如何都要导入 CSV 文件,所以让我们使用 Power Query。
- 来自功能区的“数据”选项卡,select 来自 Text/CSV。导航到您的文件,导入,然后在出现的对话框中单击转换数据。
- 如有必要,select将第一行用作“主页”选项卡中的Headers。
Select ServerName 和 ServerHash 列 > right-click > 合并列,使用 |定界符。对 EndName 和 EndHash 列执行相同的操作。
您现在应该只有两列。将它们与不同的分隔符合并在一起,例如冒号
右键单击,按分隔符拆分列。选择冒号分隔符,单击“高级”,选择“行”而不是“列”。
用 | 拆分结果列分隔符。
Select 两列,从 Transform 选项卡中选择 Group By,然后执行 Count 操作。现在您可以过滤掉计数为 2 或更大的任何内容。
如果您需要跟踪服务器和终端散列类型,您可以在进行任何合并之前创建两个自定义列,指明散列类型,并将它们包含在初始列合并中。
您可能会受益于 COUNTIFS:
我在A列的公式是:
=COUNTIFS($E:$E;B3;$F:$F;C3)
return 值为 0 的行表示它们是唯一的。
我目前正在从 Windows 目录导出 CSV 文件,将端点与服务器文件进行比较。
我在 CSV 文件上有文件的完整路径、文件名、大小和 MD5 哈希值。
我们知道目录结构几乎相同,只有细微差别。
我试图在 excel 上实现的是获取具有相同名称但不同 MD5 的 MD5 值。
我目前的障碍是我无法找到一种方法来告诉 excel 通过 table 并仅选择在两个 table 上都是唯一的 MD5 哈希(服务器和端点)。
为简单起见,此table按名称排序,但在excel中我没有名称重合,
说:
ServerName | ServerHash | - | EndName | EndHash |
---|---|---|---|---|
NameA | ABCD1234 | - | NameA | ABCD1234 |
NameB | DCBA4321 | - | NameB | DIFFHASH |
NameC | HASHFINE | - | NameC | HASHFINE |
NameD | ABCD1234 | - |
过滤后的结果:
ServerName | ServerHash | - | EndName | EndHash |
---|---|---|---|---|
NameB | DCBA4321 | - | NameB | DIFFHASH |
NameD | ABCD1234 | - |
我尝试“删除重复项”,但我认为该工具仅在同一列中查找,不会在 ServerHash 和 EndHash 之间进行交叉比较。
有更简单的方法吗?
谢谢
因为您无论如何都要导入 CSV 文件,所以让我们使用 Power Query。
- 来自功能区的“数据”选项卡,select 来自 Text/CSV。导航到您的文件,导入,然后在出现的对话框中单击转换数据。
- 如有必要,select将第一行用作“主页”选项卡中的Headers。
Select ServerName 和 ServerHash 列 > right-click > 合并列,使用 |定界符。对 EndName 和 EndHash 列执行相同的操作。
您现在应该只有两列。将它们与不同的分隔符合并在一起,例如冒号
右键单击,按分隔符拆分列。选择冒号分隔符,单击“高级”,选择“行”而不是“列”。
用 | 拆分结果列分隔符。
Select 两列,从 Transform 选项卡中选择 Group By,然后执行 Count 操作。现在您可以过滤掉计数为 2 或更大的任何内容。
如果您需要跟踪服务器和终端散列类型,您可以在进行任何合并之前创建两个自定义列,指明散列类型,并将它们包含在初始列合并中。
您可能会受益于 COUNTIFS:
我在A列的公式是:
=COUNTIFS($E:$E;B3;$F:$F;C3)
return 值为 0 的行表示它们是唯一的。