我的数据
NAME QTY LOCATION
abc 3 a1
abc 3 a3
abc 3 a4
cdf 4 c5
cdf 4 c7
cdf 4 c1
cdf 4 c9
ghi 6 g12
ghi 6 g5
ghi 6 g17
ghi 6 g6
ghi 6 g89
ghi 6 g1
我想要的结果
NAME QTY LOCATION
abc 3 a1, a3, a4
cdf 4 c5, c7, c1, c9
ghi 6 g12, g5, g17, g6, g89, g1
如何使用Excel中的功能自动执行此操作?
答案 0 :(得分:2)
我已将列C创建为“帮助程序”以连接所有相关位置。然后我使用D列只显示最后一个条目并“过滤”中间结果。
关于公式:
=B1
=IF(A2=A1,C1&", "&B2,B2)
=IF(A3=A2,C2&", "&B3,B3)
C4:等......
D1:=IF(A1=A2,"",C1)
答案 1 :(得分:0)
格式化更有意义。还有一些额外的信息,你想要复制到哪里以及你的尝试将是有帮助的。
我建议使用VBA而不是公式。如果您不了解VBA,我建议您在完成手动复制数据的步骤时录制宏。然后,您可以查看由Excel创建的代码,您只需要通过相对地址将逻辑级数替换为绝对单元格地址引用。赶紧去看看,然后可以自由地询问是否有你坚持的具体细节。
答案 2 :(得分:0)
假设a1
在C2中,进入D2 put:
=IF(COLUMN()<COUNTIF($A:$A,$A2)+4,IF($A2=$A3,INDIRECT("$c"&ROW()+COLUMN()-4),""),"")
=A1=A2
并复制下来。 =D1&","&E1&","&F1&","&G1&","&H1&","&I1
等等以适应和复制以适应。,,
。 =IF(RIGHT(C1,1)=",",LEFT(C1,LEN(C1)-1),C1)
并向下复制。 答案 3 :(得分:0)
在不使用VBA和使用直接excel公式的情况下,这有点可行。
我在A,B和C列中使用了您的测试数据然后我将解决方案放在E-L列中这里是一张图片:
(无论数据在A列中的顺序是什么,这都应该有效,这就是为什么我放错了行的原因)
此解决方案的唯一非自动部分是您必须在E列中手动输入名称。无论您输入什么名称,右边的数据都是将自动填充QTY
和Locations
。
这有点复杂,但无论如何这里是我使用的3个公式:
F栏:=OFFSET($B$1,MATCH(E1,A:A,0),0)
这将获取QTY
值
G栏:=OFFSET($C$1,MATCH($E1,$A$1:$A14,0)-1,0)
这将获得与location
name
列H-L:您可以将此公式放入H列,然后填充到右侧。它会抓住相对于左边一个的下一个位置。 =IFERROR(OFFSET($C$1,MATCH($E1,INDIRECT("$A"&MATCH(G1,$C$1:$C14,0)+1&":$A$14"),0)+MATCH(G1,$C$1:$C14,0)-1,0),"")
这里有图片帮助:
F栏:
G栏:
H-L栏: