EXCEL矩阵表中,怎么把多列的非空单元格值连同标题合并汇总在一个单元格中?

EXCEL矩阵表中,怎么把多列的非空单元格值连同标题合并汇总在一个单元格中?,第1张

H2用公式
=TEXTJOIN(",",1,IF(B2:F2<>"",B$1:F$1&B2:F2,""))
数组公式,按组合键CTRL+SHIFT+回车,完成公式,下拉。

可以用数据透视表功能完成,步骤如下:
1、选中数据区域中的任意一个单元格。
2、点击插入,在表格分组,找到数据透视表。
3、在打开的创建数据透视表对话框中,单击确定。
4、在数据透视表字段设置菜单,把A列添加到行标签报B列添加到值区域。
如下图,即可达到要求的效果。

如果数据的确像您表上的那样,也就是第一列是经过排序的,那这个是可以用公式来做的。比如我举个例子,看下面的图,c2的公式在下面,下拉即可。

=IF(A2<>A1,PHONETIC(OFFSET(A2,,1,COUNTIF($A$2:$A$15,A2))),"")

使用连接符&或者是使用CONCATENATE()函数都可以办到。
例如我想要连接A1,B1,C1三个单元格,可以
用=A1&B1&C1或者是=CONCATENATE(A1,B1,C1)。中间也可以插入其它文本,文本需要放在英文双引号中,例
如="excel"&A1&B1&C1&"部落"或者=CONCATENATE("excel",A1,B1,C1,"
部落")最终会得到excel加上A1,B1,C1的内容加上部落这样的文本。
顺带一提,如果中间的文本需要有出现英文的双引号,比如我想要得到excel"部落"这样的文本,有以下两种方法:
使用两个连续的双引号来表示,比如在公式中写成"excel""部落""",将会得出excel"部落"这样的文本。
使用函数CHAR(34),比如写成="excel"&CHAR(34)&"部落"&CHAR(34),也会得出excel"部落"这样的文本。

在C列和D列产生合并后的结果
C2 =if(countif(A$2:A2,A2)=1,A2,"")
D2 =if(C2="","",sumif(A:A,C2,B:B))
将C2:D2公式向下复制就行了

可用PHONETIC函数实现。

示例如下:

假定合并如图所示的“一班”的同学名字到D列,名字之间以逗号分隔。

D2的公式:

=SUBSTITUTE(SUBSTITUTE(PHONETIC(OFFSET(A$1,MATCH(C2,A:A,)-1,,COUNTIF(A:A,C2),2)),C2,","),",",,1)

其中:OFFSET(A$1,MATCH(C2,A:A,)-1,,COUNTIF(A:A,C2),2) 得到所有一班的班级与姓名区域,然后用PHONETIC函数合并,得到依次由“一班”和姓名组成的字符串,最后用SUBSTITUTE函数将“一班”替换为逗号,并将第一个逗号去掉,得到如图中D2单元格的结果。

假设8个数放在A1:A8单元格内。
B1:
=INDEX(A:A,SMALL(IF(MATCH(A$1:A$8,A$1:A$8,0)=ROW(A$1:A$8),ROW(A$1:A$8),COUNTA(A:A)+1),ROW(A1)))&""
在公式编辑框里按Ctrl+Shift+Enter组合键确定。
向下拖拽公式,直到出现空白单元格。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13353768.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-20
下一篇 2023-07-20

发表评论

登录后才能评论

评论列表(0条)

保存