我在Excel中有两列数据。我想添加第三列,它结合了第一列和第二列。如何使用公式来执行此操作,以便我可以在不必触及列C的情况下添加或删除列A和B中的数据?
Column A Column B Column C
Bob Mary Bob
Joe Melissa Joe
Jim Jackie Jim
Mary
Melissa
Jackie
问题明确提到Microsoft Office Excel,但我认为如果你使用Google Sheets更简单的解决方案就是使用Lake在https://stackoverflow.com/a/14151000/1802726提到的大括号函数/运算符。
在单元格C1中输入以下公式
=IF(ROW()>COUNTA(A:B),"",IF(ROW()<=COUNTA(A:A),INDEX(A:A,ROW()),INDEX(B:B,ROW()-COUNTA(B:B))))
然后根据需要复制。
这是交错两行的好方法。
换句话说,转过来:
A X
B Y
C Z
进入这个:
X
A
Y
B
Z
C
假设上面的表在第一列和第二列中,你会这样做:
=IF(MOD(ROW(),2)=0,INDIRECT(ADDRESS(INT(ROW()/2), 1)),
INDIRECT(ADDRESS(INT(ROW()/2)+1, 2)))
让我们打破一点点。第一部分是MOD(ROW(), 2)
,如果当前行是偶数则返回零,如果是奇数则返回1。
因此,当我们沿着专栏走下去的时候,IF
会去FALSE/TRUE/FALSE/TRUE
。
接下来,ADDRESS(INT(ROW()/2), 1)
返回第1列和当前行的一半的单元格地址的字符串表示。 (圆了下来)。这件作品本身看起来像:
#VALUE!
$A$1
$A$1
$A$2
$A$2
$A$3
$A$3
(第一个#VALUE
错误是因为1/2 = 0.5,它向下舍入为零。没有行零!)
INDIRECT
函数返回在该地址找到的任何值。
其余的很清楚。
注意:可能比使用INDIRECT
和ADDRESS
更流畅。建议欢迎。