【问题标题】:Create Comma Separated List In Excel在 Excel 中创建逗号分隔列表
【发布时间】:2017-02-03 02:06:18
【问题描述】:

我有两个工作簿,我需要将数据从工作簿 1 提取到工作簿 2。实现这一点的标识符是empID 现在对于每个empID,我需要显示它们工作的位置。所以样本数据看起来像这样
工作簿1
empID.....姓名....地址...城市...州....邮编
1
2
3
4
5

工作簿2
empID.......位置工作
1 12
2 33
1 11
4 22
3 9
1 55
5 19
2 76
1 99

我已使用此公式将数据返回到每个 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

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

【问题讨论】:

  • 如果您可以访问 Excel 2016,则可以使用 =TEXTJOIN(",",TRUE,TRANSPOSE(IF(Empl=A2,Location,""))),在工作簿 2 的 C 列中使用 ctrl + shift + enter 输入(假设您的数据在列中A & B; 然后过滤只显示唯一的 Emp ID,但不知道如何在 2013 年做到这一点
  • @RonRosenfeld - 不幸的是我无法访问 Excel 2016。

标签: excel excel-formula formula excel-2013 worksheet-function


【解决方案1】:

在工作簿 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 将处理工作表。然后,您可以使用 VLOOKUP 从您的报告表(我相信在这种情况下是表 1)中引用此列表。它会自动选择包含 csv 列表的每个员工 ID 的第一个实例。

【讨论】:

  • 为此目的的优秀配方。我相信下界$C$50 可以是至少与表格一样长的任何单元格。您的公式在引用 $C$5000 时同样适用,只有 9 行数据。如果结果必须以数字顺序返回位置,他只能预先对表进行排序——按 ID 升序;按位置降序
  • 很好地调用不需要数组 MATCH 公式。然而,VLOOKUP 的美妙之处在于它在引用该表时甚至不需要排序。它没有像 Lotus 123 那样的 AI,不分青红皂白地抓取第一个实例,因此对源数据进行排序不会产生任何额外的好处(但它会使在视觉上剖析源数据变得容易得多)
  • 您的公式以相反的顺序给出了位置 ID。正如我所写的,如果 OP 希望位置 id 像他在问题中显示的那样按排序顺序排列,那么这种排序很有用。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 2018-08-09
    • 1970-01-01
    • 2016-07-23
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多