在Excel中创建逗号分隔列表



我有两个工作簿,需要将数据从工作簿1拉到工作簿2。实现这一点的标识符是empID现在,对于每个empID,我需要显示他们工作的位置。样本数据如下
Workbook1
empID。。。。。名称住址城市状态Zip
1
2
3
4
5

Workbook2
empID。。。。。。。定位工作
112
2 33
1 11
4 22
3 9
1 55
5 19
2 76
1999

我使用这个公式将每个empID的数据返回到不同的单元格

=IFERROR(INDEX($B$2:$B$8, SMALL(IF($A$11=$A$2:$A$8, ROW($A$2:$A$8)-ROW($A$2)+1), ROW(1:1))),"" )

但我想创建一个逗号分隔列表,并将所有内容放在一个单元格中,就像一样

1   11,12,55,99
2   33,76

etc

有没有一种方法可以修改语法,以便创建一个逗号分隔的列表,就像我想要的输出一样?

在工作簿2中,我将此公式添加到列C 中

=IFERROR(VLOOKUP(A1,A2:$C$50,3,0)&","&B1,B1). 

这假设您的数据一直向下到第50行。将$C$50替换为电子表格中最后一行。

如果这是一个变量列表,请使用

=INDIRECT("A2:C"&MATCH(TRUE,D:D="",0),1) 

代替

A2:$C$50

但是,不要忘记使用Ctrl+Shift+Enter将公式设置为数组。

接下来,将此公式向下复制所有行。VLOOKUP将处理表单。然后你可以参考你的报告表中的这个列表(我相信在这种情况下是表1)和VLOOKUP。它将自动选择包含csv列表的每个员工ID的第一个实例。

我想指出的是,虽然bad_neighbor的解决方案非常准确,可用于未来的数据更改,但通常最好尽可能避免查找,并将计算结果存储为值,因为这些方法并不完全有效,而且在数据量较大的情况下,例如在过滤/未过滤时,往往会减慢工作表的速度。旧版本的情况更糟。

因此,如果这种列表格式是手动操作的一部分,并且假设要求每个列表项按升序排列(根据问题的输出),我会执行以下操作:

  1. 如果工作簿2的顺序很重要,请添加行索引(D1:=1;D2:=D1+1;粘贴值)
  2. 按[A升序,B降序]对工作簿2进行排序,包括索引(如果存在)
  3. 将此公式应用于C列-查找的填充版本
C1 := IF(A1=A2,C2&", "&B1,B1)
  1. 复制粘贴特殊值列C
  2. 从工作簿查找1+复制粘贴特殊值
  3. (可选)根据工作簿2中的原始索引(D)进行回排序

相关内容

  • 没有找到相关文章

最新更新