【问题标题】:Excel: Group values from rows based on common cell valueExcel:根据公共单元格值对行中的值进行分组
【发布时间】:2017-08-24 20:34:25
【问题描述】:

我有一个 Excel 文件,其中包含一组组和属于它们的用户的列表。我需要生成属于每个组的用户列表。关键点:虽然这在 perl、python 或任何其他编程语言中是一项微不足道的任务,但我想在 Excel 中完成整个工作,这样我就不必导出到 csv、重新导入结果和重新- 每次有变化时进行格式化。

文件格式(导出为 csv 时)类似于:

Group, username, email
Perl Jam, evedder, evedder@pj.com
Perl Jam, mcameron, mcameron@soundgarden.com
Perl Jam, jament, jament@pj.com
Perl Jam, sgossard, sgossard@pj.com
Perl Jam, mmccready, mmccready@pj.com
Soundgarden, mcameron, mcameron@soundgarden.com
Soundgarden, ccornell, ccornell@soundgarden.com
Soundgarden, kthayill, kthayill@pj.com
Soundgarden, bshepherd, bshepherd@pj.com
Temple of the Dog, evedder, evedder@pj.com
Temple of the Dog, ccornell, ccornell@soundgarden.com
Temple of the Dog, jament, jament@pj.com
Temple of the Dog, sgossard, sgossard@pj.com
Temple of the Dog, mmccready, mmccready@pj.com
Temple of the Dog, mcameron, mcameron@soundgarden.com

我想结束的是:

Group, usernames
Perl Jam, evedder, mcameron, jament, sgossard, mmccready
Soundgarden, mcameron, ccornell, kthayill, bshepherd
Temple of the Dog, evedder, mcameron, ccornell, jament, sgossard, mmccready

【问题讨论】:

  • 您是否考虑过创建数据透视表?它不一定是您最终得到的列表,但它是一种对数据进行排序的动态方式。您甚至可以从用户名开始,然后查看他们在哪个组下列出。

标签: excel csv excel-formula


【解决方案1】:

要获得您的唯一列表,请使用以下数组公式:

=IFERROR(INDEX($A$2:$A$16,MATCH(0,COUNTIF($E$1:E1,$A$2:$A$16),0)),"")

作为数组公式,退出编辑模式时需要使用 Ctrl-Shift-Enter 确认,而不是 Enter。如果操作正确,Excel 会在公式周围加上{}

输入第一个单元格,按 Ctrl-Shift-Enter,然后向下复制直到出现空白。

获取用户名:

=IFERROR(INDEX($B:$B,AGGREGATE(15,6,ROW($A$2:$A$16)/($A$2:$A$16=$E2),COLUMN(A:A))),"")

其中 $E2 是另一个公式所在的单元格。

然后上下复制。

【讨论】:

    猜你喜欢
    • 2015-06-12
    • 2014-08-11
    • 1970-01-01
    • 2010-09-24
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多