首先,我提前抱歉对待我的英语。
如果我有一张桌子喜欢这个(2x5)
购买A |橙
购买A |苹果
购买A |芒果
B铺橙
B铺苹果
我想引用它们(使用公式)(2x2)
购买A |橙子,苹果,芒果
B铺橙色,苹果
谢谢
答案 0 :(得分:0)
根据我的知识,通过代码并不容易。你可以通过一些工作得到结果,但它很麻烦和手动。
我假设您的数据位于A列和B列。
首先,我将在D1和E1中创建两个标题,称为" Shop A"和"商店B" 接下来,我只会在D2和E2中键入1个撇号('符号)。这个不会显示,但会停止excel,稍后会在每个空结果中加上0。
然后我会在D3中加入以下公式:
=IF($A1=D$1,D2&" "&$B1,D2)
这是做什么的:
然后我会把它拖到E3,因为它变成了:
=IF($A1=E$1,E2&" "&$B1,E2)
然后我可以向下拖动这两个单元格(即突出显示D3和E3并将它们向下拖动)。
只要您需要完全覆盖原始行数(在本例中为5),将其向下拖动。最后一个条目是每列的连接字符串。对于您的情况,您最终得到:
orange apple mango | orange apple
将这两个字符串和粘贴值复制到另一个单元格中。然后你可以再次复制它们,如果你想要它们一个在另一个之上而不是并排,那就转置它们,即:
orange apple mango
orange apple
然后只需输入原始列(或复制D1和E1并转置它们)。
请注意,由于'字符串在开头会有一个空格。我们放入第一个单元格。如果你想修剪它,只需在结果上使用TRIM()
函数来删除前导和尾随空格。
希望这会有所帮助。正如我所说,这是非常耗费人力的,但我从来没有找到一种在excel中有条件地连接字符串的好方法,而没有潜入编写VBA。
注意,我不使用CONCATENATE()函数,因为它不插入空格。你可以这样做:
=IF($A1=D$1,CONCATENATE(D2," ",$B1),D2)
与我合并它们的效果相同。