使用2019版的excel中的power pivot中的函数将'表1'[人员]使用逗号分隔的数据去重
时间: 2024-02-22 18:01:38 浏览: 147
在2019版的Excel中,可以使用TEXTJOIN函数和UNIQUE函数来实现将逗号分隔的数据去重的操作。
下面是一个示例公式:
=TEXTJOIN(",", 1, UNIQUE(FILTERXML("<root><s>" & SUBSTITUTE('表1'[人员], ",", "</s><s>") & "</s></root>", "//s")))
该公式使用了SUBSTITUTE函数将逗号替换为闭合的XML标签,并将结果传递给FILTERXML函数进行解析。然后,UNIQUE函数对所有的<s>标签中的文本内容进行去重操作,最后使用TEXTJOIN函数将结果合并为一个字符串。
请注意,这种方法需要启用动态数组功能。如果您的Excel版本不支持动态数组,可以使用以下公式:
=TEXTJOIN(",", 1, IFERROR(INDEX(UNIQUE(FILTERXML("<root><s>" & SUBSTITUTE('表1'[人员], ",", "</s><s>") & "</s></root>", "//s")), SEQUENCE(ROWS(UNIQUE(FILTERXML("<root><s>" & SUBSTITUTE('表1'[人员], ",", "</s><s>") & "</s></root>", "//s")))), ""))
这个公式使用了SEQUENCE函数生成一个序列,然后使用INDEX函数从去重后的结果中取出对应的值,并使用IFERROR函数处理可能出现的错误。最后,使用TEXTJOIN函数将结果合并为一个字符串。
相关问题
power pivot中的函数将'表1'[人员]使用逗号分隔的数据去重,不使用XML标签格式
如果您不想使用XML标签格式来处理这个问题,您可以使用以下公式:
=TEXTJOIN(",", 1, UNIQUE(FILTER('表1'[人员], LEN('表1'[人员])>0)))
该公式使用了FILTER函数来筛选出所有非空的文本值,并使用UNIQUE函数对这些值进行去重操作。最后,使用TEXTJOIN函数将去重后的结果合并为一个字符串。
请注意,这种方法可能不太适用于包含大量文本值的情况,因为它需要对所有值进行筛选和去重操作,而这可能会影响性能。如果您的数据集较大,建议使用其他方法来解决该问题。
power pivot中的函数将'表1'[人员]使用逗号分隔的数据去重,不使用XML标签格式,有大量数据时候如何解决
如果数据集较大,可以考虑使用Power Query的分裂列和去重功能来处理这个问题。
1. 将数据导入Power Query中。
2. 选择'表1'[人员]列,然后在“转换”选项卡中选择“分裂列”。
3. 在“分裂列”对话框中,选择“按分隔符分裂”,然后选择逗号作为分隔符。
4. 点击“确定”按钮,将会生成多个新列,每个新列包含一个人员名称。
5. 选择这些新列,并在“开始”选项卡中选择“去重”。
6. 点击“确定”按钮,将会生成一个去重后的列,其中包含所有不同的人员名称。
7. 将结果导出到Power Pivot中,然后使用TEXTJOIN函数将所有不同的人员名称合并为一个以逗号分隔的字符串。
请注意,这种方法需要使用Power Query和Power Pivot两个功能,而且可能需要较长的时间来处理大型数据集。但它可以有效地处理大量数据,并提供更好的性能和灵活性。
阅读全文