谷歌表格公式创建“锯齿状列表”范围内所有唯一值的 1 列唯一输出范围
Posted
技术标签:
【中文标题】谷歌表格公式创建“锯齿状列表”范围内所有唯一值的 1 列唯一输出范围【英文标题】:Google Sheets Formula to create a 1-column unique output range of all unique values in range of "jagged list" 【发布时间】:2017-08-06 13:57:09 【问题描述】:文档:https://docs.google.com/spreadsheets/d/1N4cGw5eUq_3gCJh1w39qVatX9KV1_Hr-AqRHj_nbckA/edit?usp=sharing
数据预期
在Current Class!H3
,表格数据是下拉菜单中显示的数据。
这个数据直接来自Meta!B7:B
...
...它可以来自Students!$J$5:$O
的列之一。该列由Current Class!B3
中的值确定
Current Expected | Example Data Expect
--------------- -------- | ------------ ------
1) M1, M2, M3, M4 M1 | 1) M1, M2 ---> M1
2) M2 M2 | M2
3) M3 ---> M3 | --------------------------
4) M4 M4 | 1) T4 M2
5) M5 M5 | 2) M2 ---> T4
6) M4, M5, M6 M6 | 3) TH3 TH3
您可能可以确定,我在单行中有一个可能的项目列表(这表明 1 名学生在一个特定房间有多个班级 - 本例为 Yale
教室)。
我想要将列表分成单独的项目,并生成一个只有唯一值的 1 列输出范围。
我尝试使用SPLIT()
函数。虽然这将每个项目分开,但我找不到将结果展平为仅 1 列的解决方案。但现在我在 Meta!B7
中有以下公式 ...
=iferror(Sort(Unique(Filter(Students!$J$5:$O, Find($B$6, Students!$J$4:$O$4) > 0 )), 1, true), "")
.
【问题讨论】:
【参考方案1】:编辑:哎呀,忘记排序了。
这似乎有效:
=sort(unique(transpose(split(substitute(JOIN(", ",offset(Students!$I$5:$I$91,0,match($B$6,Students!$J$4:$O$4))),",","")," ",TRUE))),1,TRUE)
它:
偏移以找到合适的房间参考, 将所有行连接成一个字符串,用“,”分隔每个值, 删除所有逗号,并以空格 (" ") 分割字符串, 转置以获得一组行,然后挑选出唯一的行。有趣的挑战!
【讨论】:
哇,太棒了!没想到这么快就有结果。我需要一些时间来解决这个问题。我必须稍作修改才能根据Classes!B5:B
对数据进行排序。以上是关于谷歌表格公式创建“锯齿状列表”范围内所有唯一值的 1 列唯一输出范围的主要内容,如果未能解决你的问题,请参考以下文章