从 Google 表格中的三列中编译按字母顺序排列的字符串列表



我有一个谷歌电子表格,如下所示:

Mediation 1 Mediation 2 Mediation 3 Mediation 4
   ELL        TIME        Health       Time         
   Health       ELL        TIME         Behavior 

我构建了一个"全部调解",它为每个分配的中介创建一个逗号分隔的列表。它看起来像下面:

Mediation 1 Mediation 2 Mediation 3 Mediation 4       Mediation All
   ELL        TIME        Health       Time         ELL, Time, Health, 
   Health       ELL        TIME         Behavior    Health, Ell, Time, Behavior

我用于生成"全部中介"的代码如下:

=iferror(sort(join(",",filter(indirect(concatenate(address(row(),match("Mediation 1",A$1:JA$1,0),4),":",address(row(),match("Mediation 2",A$1:JA$1,0),4))),indirect(concatenate(address(row(),match("Mediation 1 ",A$1:JA$1,0),4),":",address(row(),match("Mediation 2",A$1:JA$1,0),4)))<>""))))

上面的代码省略了我在此处包含的中介 3 和调解 4。

我希望调解清单按字母顺序排列,以便

ELL, Time, Health, Time

替换为

ELL, Health, Time

Health, ELL, Time, Behavior

成为

Behavior, ELL, Health, Time

这样可以更轻松地输入数据。输入数据的人员不必将同一中介放入同一列和行中。

这是简短的公式: =join(",",transpose(Sort(UNIQUE(transpose(A2:D2)))))

  • Unique筛选出上的重复值
  • 由于值在列中,因此我们必须transpose
  • 出于某种原因,如果不重新转置排序列表,我们就无法使用join

@daniel公式似乎有效。如果不希望同时返回"TIME"和"Time",请将公式更改为:

=join(",",TRANSPOSE(Sort(UNIQUE(LOWER(transpose(A2:D2))))))

但是,这将以小写形式返回所有内容(ell,健康,时间)。或者,如果您对已经在单个单元格中连接的内容感到满意,并且只想删除重复并将其按 alpha 顺序排列,请使用:

=JOIN( ", ", SORT(UNIQUE(LOWER(TRANSPOSE(TRIM(SPLIT( $A 5, ","

)))))))

其中 $A 5 是您的串联单元格。

最新更新