Excel:在两列(A和B)之间进行配对,并在列C和D中显示未配对的值

时间:2012-09-08 19:26:41

标签: arrays excel excel-formula duplicate-removal

Excel buffs:

在搜索两列之间的比较时会出现很多结果(例如:使用VLOOKUP),但到目前为止我看到的结果似乎都没有以我特定的方式做到我需要的东西:

A列具有以下值:Z,Q,V,V,T,T

B列具有以下值:V,T,T,M

C列将显示Z,Q,V(这里我们有一个V,因为一组“V”对,我们留下一个未配对的'V')

D列将显示M

我到目前为止看到的其他例子假设C列中没有'V',因为它已经在A列中找到,无论它出现了多少次。

基本上,我需要将两列之间的值配对并删除,但请留下任何“奇数”。

我一直无法使用公式计算出这一个 - 我首先要对所有内容进行排序,然后将列A或B中的单元格向下移动,直到Columna A和B具有匹配值或者每个都有奇数值行

提前致谢

编辑:另一种说法:我想“消除”A列和B列中的配对值,直到所有对都被删除,留下我在A列和B列中的剩余值

1 个答案:

答案 0 :(得分:1)

让我们假设C / D中的答案可以与A / B中不匹配的原件位于同一行。

这是C1的公式,复制并粘贴它:

=REPT(A1,
 MAX(0,MIN(1,COUNTIF($A:$A,A1)
 -COUNTIF($B:$B,A1)
 -IF(ROW()=1,0,COUNTIF(OFFSET($C$1,0,0,ROW()-1,1),A1))
 )))

基本上,我们想要“重复”A列中的相应值,如果我们在B 中找不到匹配项我们还没有考虑到到目前为止它在C中。

这里有逻辑确保OFFSET()不引用零高度范围,并且我们在C的每一行上重复0或1次,不多也不少。

D1的公式类似,但反过来将B比较回A:

=REPT(B1,
 MAX(0,MIN(1,COUNTIF($B:$B,B1)
 -COUNTIF($A:$A,B1)
 -IF(ROW()=1,0,COUNTIF(OFFSET($D$1,0,0,ROW()-1,1),B1))
 )))