我有一个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
答案 0 :(得分:2)
要获取您的唯一列表,请使用此数组公式:
=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是另一个公式所在的单元格。
然后向上和向下复制。