excel表格_excel函数公式大全_execl从入门到精通
Excel如何竖表改横表?多行合并为一行?只需三步教你搞定2024-02-28 12:53:56
本文将用到:
OR(条件1,条件2,……) 结果为TRUE/FALSEFIND/SEARCH(查询值,文本/数据) 结果为数值/报错ISERROR(报错判断) 结果报错TRUE,正确FALSE多条件VLOOKUP(关键字,多列区域,位置,False)
昨天看到求教将竖表改为横表的问题,仔细观察横表或竖表,前两列结构完全一致,并不存在横表竖表的结构差异。而处理方法实际上是表2将表1前两列去重后,再将第三列汇总而成。
前两列去重并不难,只需使用到菜单栏"数据"中的"删除重复值"功能即可实现。
关键在于将第三列多行数据汇总。
如何将多行数据汇总到一行,并且用符号间隔呢?
我们用一个实际案例来说明。
思路:做两列辅助列,在第一个辅助列中,将列表按照同一比赛、同一班级进行累计汇总;在第二个辅助列进行取数标记;使用查询函数将结果自动链接到汇总表。
第一步:在第一个辅助列(绿色列E列)进行分类累计汇总
首先,先将数据进行排序,按照比赛项目、班级升序排序;
接着,以第3行为例,判断是否与第2行比赛项目、班级有不同:
若与比赛项目、班级任一不同,则不汇总,但要取此行D列数据;若两者均相同,则参与汇总,将上行汇总与此行数据用符号"&"及间隔逗号连接起来。
以单元格E3为例,公式为:
IF(OR(B3<>B2,C3<>C2),D3,E2&","&D3)
绿色E列其他单元格,下拉填充即可。
第二步:在F列(橙色列)进行判断,是否此行为最终汇总行
多行合并为一行的第2步根据第一步的累计列表的原理可知,除非当前行与上一行的的比赛项目或班级两者有任一不同,E列停止累计汇总。并且下一行作为重新累计汇总的起始点,是没有间隔符号逗号的。
因此,只要能够判断当前行是否停止累计,或下一行重新累计,就可以判断是否为同一产品和销售渠道的最终汇总行。而判断标志为是否包含逗号。
以单元格F3为例,公式为:
IF(ISERROR(FIND(",",E4))=TRUE,"Y","")
公式为函数组合,FIND是查询函数,用来查询下一行是否包含逗号,如果有逗号会返回一个数值,说明当前行是不是最终汇总行,不取数行,不做标;如果没有查询到逗号则会报错,则说明当前行是最终汇总行,是取数行,做标记"Y"。
表哥Tips:函数FIND(),在当前案例中也可以替换为SEARCH(),用法一致。但如果列表内容是英文,如果对大小写的匹配要求非常严格,此时就要注意使用FIND()。
第三步:将做标记的数据表,通过查询函数VLOOKUP链接到最终汇总表
函数Vlookup常规用法的关键字仅为一列,而案例中,需要满足三个条件,因此将多列组成集合,进行多条件匹配查询。
关键列三个条件是:
1. 比赛项目相同
2. 班级相同
3. 辅助2标记为"Y"
则以汇总表J3为例,公式为:
VLOOKUP(H3&I3&"Y",IF({1,0},B:B&C:C&F:F,E:E),2,FALSE)
表哥Tips:上述公式由于使用数组计算,因此在进行计算时,要同时按下键盘三件组键Shift+Ctrl+Enter,按下之后公式最外层会出现花括号"{}",表示进行操作成功。
以上就是将多行明细表汇总为一行的详细步骤。
你学会了吗?
感谢你关注表哥,
并欢迎留言分享你的大法或者烦恼
也许下一个专题就是为你定制哦
撒花↖(^ω^)↗
标签: excel表格竖行怎么合并