如果两个单元格在第1列中具有相同的值,则在行中移动关联的单元格

时间:2016-10-30 13:26:11

标签: excel row

我想知道是否有办法做到以下几点: 我有一个包含数字的列A.如果有两个或更多个数字相互之后具有相同的值,则相应地移动B和C中的值。

因此,如果A列中的数字是相继的,则确定B和C列。

enter image description here

在图片中,A列到C列是我的原始数据。 J列到L列是我想要实现的目标

任何能让我朝着正确方向前进的想法或反馈都会非常感激!!!

1 个答案:

答案 0 :(得分:2)

您可以在VBA中执行此操作,但我已使用数组公式完成此操作。我相信VBA会有更简洁的方式。

我这样做的方式是,在K2中输入:

=IF(COUNTIF(F$1:F2,F2)=1,INDEX(B:B,SUM(1/COUNTIF(F$1:F2,F$1:F2))),G1)

在L2中:

=IF(COUNTIF(F$1:F2,F2)=1,INDEX(C:C,SUM(1/COUNTIF(F$1:F2,F$1:F2))),H1)

这些都是数组公式,因此您需要在键入后按Ctrl + Shift + Enter。然后他们可以被复制下来。

这种方式的工作原理是:

IF(COUNTIF(F$1:F2,F2)=1,______,G1)

计算F中的值出现在其上方的次数。如果这是第一次出现(= 1),则需要从B列中选择值,否则只需要等于上面的行(G1)。

INDEX(B:B,SUM(1/COUNTIF(F$1:F2,F$1:F2)))

通过计算F中的值发生的次数再次起作用。对它做1,并对它们求和,得到F列中唯一值的数量,直到该点。然后,索引函数将引用该行中的值拉出该行。

希望这是有道理的,也是你正在寻找的东西!