我有一个谷歌电子表格,如下所示:
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 是您的串联单元格。