我有两个软件管理解决方案,它们大部分都安装在我的目标计算机上。但是,也有一些例外,所以我想得到一个由其中一个解决方案覆盖但另一个解决方案不覆盖的计算机名称列表。
我能找到的所有内容都只是显示每个值的运行列表,然后显示“真”或“假”
我只想要每个结果的列表。
源数据是这样的:
管理解决方案 1 – 两列,一列用于设备名称,一列用于其所属的域。
管理解决方案1
设备名称 | 领域 |
---|---|
赢-10-1 | Α |
赢-10-2 | Α |
赢-7-1 | 测试版 |
管理解决方案2
设备名称 | 领域 |
---|---|
赢-10-1 | Α |
赢-10-2 | Α |
WIN-7-2 | 测试版 |
因此我们可以看到域 Beta 中的 Win-7-2 存在于管理解决方案 2 的设备列表中,但不在管理解决方案 1 的列表中。
我们可以看到,Win-7-1 存在于管理解决方案 1 的列表中,但不存在于管理解决方案 2 的列表中
差异列表实际上将会显示在与原始数据不同的表格上。
但这个列表应该是一个简单的结果:
管理解决方案 1 中存在但不在管理解决方案 2 中的域名和设备列表,反之亦然。
仅在解决方案 1 中
设备名称 | 领域 |
---|---|
赢-7-1 | 测试版 |
仅在解决方案 2 中
设备名称 | 领域 |
---|---|
WIN-7-2 | 测试版 |
Win-10-1 和 Win10-2 对两者来说都是通用的,所以我不想在任何地方列出它们
我正在处理大约 850 台计算机的列表,当然其中有 30 台计算机存在差异。解决方案 1 可能管理少量计算机,然后解决方案 2 管理更长的列表。
答案1
您可以使用 INDEX 数组公式返回 [您的条件] 的所有值。在此示例中,我的条件将查找计数值 0(零),这表示与其他数据源匹配。
首先,向每个源数据添加另一列,其中计算从源 1 到源 2 以及反之亦然的匹配数。
单元格 C3 公式(计算 MS2 中的实例数):
=COUNTIFS(E:E,A3,F:F,B3)
单元格 G3 公式(计算 MS1 中的实例数):
=COUNTIFS(A:A,E3,B:B,F3)
拖下你的公式。
接下来,您可以创建缺失(零)值的列表。
单元格 I3 公式(数组公式,因此按 CTRL-ALT-ENTER 获取花括号):
{=IFERROR(INDEX($A$3:$A$6,SMALL(IF(0=$C$3:$C$6,ROW($A$3:$A$6)-ROW($A$3)+1),ROW(1:1))),"")}
将其向下拖拽到比需要的更远的位置。它被错误处理程序包裹着,当找不到更多内容时会显示空白。
J3细胞公式:
=IFERROR(VLOOKUP(I3,A:B,2,FALSE),"")
将其向下拖动至所需位置。
在 L 和 M 列中使用类似的公式,但相应改变参考数据。
答案2
在 Office 365 中,您可以使用XMATCH
和FILTER
我创造表格对于解决方案表并命名Soln1
它们Soln2
然后
(在设备名称下方的单元格中输入)
(结果将根据需要溢出到其他单元格)
only in Solution 1: =FILTER(Soln1,ISNA(XMATCH(Soln1[Device Name],Soln2[Device Name])))
only in Solution 2: =FILTER(Soln2, ISNA(XMATCH(Soln2[Device Name],Soln1[Device Name])))
ISNA(XMATCH(...
如果第一个参数中的任何条目在第二个参数中不存在,则将返回TRUE
;因此它可以用作函数的条件FILTER
。