Excel多列同类数据合并为单列:判断存在x则显示x的公式问询
问题描述
现有一份数据表,首列为项目列表(Items),后续是重复的类别列(如多个「Category A」「Category B」列),列中以"x"标记项目与类别的匹配关系:
Items Category A Category A Category A Category B Category B Item 1 x x x Item 2 x x Item 3 x x x x Item 4 x x x
需要在另一工作表中整合结果,生成仅含唯一类别列的表格,判断每个项目在对应类别下是否存在"x",存在则填入"x",预期结果如下:
Items Category A Category B Item 1 x x Item 2 x Item 3 x x Item 4 x x
请问实现该需求的公式是什么?
解决方案
针对Excel 365/2021(支持动态数组)
假设原始数据存放在Sheet1的A1:F5区域,新工作表的A1单元格输入Items,B1、C1分别手动输入Category A、Category B:
- 在B2单元格输入公式,回车后自动填充整列:
=IF(COUNTIF(Sheet1!B2:D2,"x")>0,"x","") - 在C2单元格输入公式,回车后自动填充整列:
=IF(COUNTIF(Sheet1!E2:F2,"x")>0,"x","")
如果想自动提取唯一类别表头(无需手动输入类别名称),可以这样操作:
- 在新表B1单元格输入公式,自动生成所有唯一类别:
=UNIQUE(Sheet1!B1:F1) - 在B2单元格输入以下公式,Excel 365直接回车,旧版本需按
Ctrl+Shift+Enter作为数组公式,再下拉填充:=IF(COUNTIF(INDEX(Sheet1!$B:$F,,MATCH(B$1,Sheet1!$B$1:$F$1,0)):INDEX(Sheet1!$B:$F,,MAX(IF(Sheet1!$B$1:$F$1=B$1,COLUMN(Sheet1!$B$1:$F$1),0))),$A2,"x")>0,"x","")
针对旧版本Excel(不支持动态数组)
直接用OR函数判断对应类别列是否存在"x":
- 在新表B2单元格输入公式,下拉填充整列:
=IF(OR(Sheet1!B2="x",Sheet1!C2="x",Sheet1!D2="x"),"x","") - 在C2单元格输入公式,下拉填充整列:
=IF(OR(Sheet1!E2="x",Sheet1!F2="x"),"x","")
内容的提问来源于stack exchange,提问作者user9836688
相关产品推荐
相关产品推荐

