Excel中怎么实现动态行转列

这篇文章将为大家详细讲解有关Excel中怎么实现动态行转列,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

成都创新互联公司专注于红岗企业网站建设,自适应网站建设,电子商务商城网站建设。红岗网站建设公司,为红岗等地区提供建站服务。全流程按需开发,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务


查询的SQL如下
<ol start="1" class="dp-sql" white-space:normal;">

  • select type,ts,cn,as DECIMAL) val from (  

  • select    

  • starttime,'发布' type,base.ts,base.cn,ifnull(t1.val,0) val  

  • from   

  • (  

  •     select    

  •         t1.*,  

  •         startdate+ interval id-1 hour starttime,  

  •         startdate+ interval id hour endtime,  

  •         date_format(startdate+ interval id-1 hour,'%m%d%H') ts,  

  •         vars.*  

  •     from nums ,(select ${starttime} startdate,${endtime} enddate) vars,  

  •     (  

  •         select 'mvbox_user.user_otherinfo' busidatatype,1 type,'内容审核.个人资料' cn union all   

  •         select 'mvbox_user.user_baseinfo',1,'内容审核.个人喜好' union all   

  •         select 'photo_album',1,'内容审核.相册信息' union all   

  •         select 'photo_list',1,'内容审核.图片信息' union all   

  •         select 'music_original',1,'内容审核.原唱信息' union all   

  •         select 'music_cover',1,'内容审核.翻唱信息' union all   

  •         select 'music_accompany',1,'内容审核.伴奏信息' union all   

  •         select 'music_album',1,'内容审核.音乐专辑' union all   

  •         select 'music_video',1,'内容审核.视频信息' union all   

  •         select 'blog_album',1,'内容审核.日志与文章' union all   

  •         select 'mvbox_user.user_baseinfo',2,'内容审核.MVBOX头像审核'  

  •     ) t1  

  •     where id<= TIMESTAMPDIFF(hour,startdate,enddate)  

  •     order by busidatatype,type,starttime  

  • ) base join   

  • (  

  •     select busidatatype,type,date_format(createtime,'%m%d%H') ts,from  audit_obj_detail   

  •     where createtime>=${starttime} and createtime<${endtime}   

  •     and busitype = 'mvbox'  

  •     group by busidatatype,type,date_format(createtime,'%m%d%H')  

  • ) t1 on (base.busidatatype=t1.busidatatype and base.type=t1.type and base.ts=t1.ts)  

  • group by base.busidatatype,base.type,base.ts,base.cn    

  • union all  

  • select    

  • starttime, '审核' type,base.ts,base.cn,ifnull(t1.val,0) val  

  • from   

  • (  

  •     select    

  •         t1.*,  

  •         startdate+ interval id-1 hour starttime,  

  •         startdate+ interval id hour endtime,  

  •          date_format(startdate+ interval id-1 hour,'%m%d%H') ts,  

  •         vars.*  

  •     from nums ,(select ${starttime} startdate,${endtime} enddate) vars,  

  •     (  

  •         select 'mvbox_user.user_otherinfo' busidatatype,1 type,'内容审核.个人资料' cn union all   

  •         select 'mvbox_user.user_baseinfo',1,'内容审核.个人喜好' union all   

  •         select 'photo_album',1,'内容审核.相册信息' union all   

  •         select 'photo_list',1,'内容审核.图片信息' union all   

  •         select 'music_original',1,'内容审核.原唱信息' union all   

  •         select 'music_cover',1,'内容审核.翻唱信息' union all   

  •         select 'music_accompany',1,'内容审核.伴奏信息' union all   

  •         select 'music_album',1,'内容审核.音乐专辑' union all   

  •         select 'music_video',1,'内容审核.视频信息' union all   

  •         select 'blog_album',1,'内容审核.日志与文章' union all   

  •         select 'mvbox_user.user_baseinfo',2,'内容审核.MVBOX头像审核'  

  •     ) t1  

  •     where id<= TIMESTAMPDIFF(hour,startdate,enddate)  

  •     order by busidatatype,type,starttime  

  • ) base join   

  • (  

  •     select busidatatype,type,date_format(AuditTime,'%m%d%H') ts,from  audit_obj_detail   

  •     where AuditTime>=${starttime} and AuditTime<${endtime}   

  •     and busitype = 'mvbox'  

  •     group by busidatatype,type,date_format(AuditTime,'%m%d%H')  

  • ) t1 on (base.busidatatype=t1.busidatatype and base.type=t1.type and base.ts=t1.ts)  

  • group by base.busidatatype,base.type,base.ts,base.cn   

  • ) t1 ;  


  • 由于这个SQL已然比较复杂,再加动态行转列,可读性几乎就没有了.


  • 这个SQL查询的结果大致如下。


  • Excel中怎么实现动态行转列
  • 其中type可能是发布或者审核.


  • ts 表示月 日 和小时


  • cn表示模块类型


  • val表示数量.



  • 将这个结果导入至Excel


  • 选择插入,数据透视表


  • Excel中怎么实现动态行转列

  • 然后将ts 设置为列标签,这样 ts 就由行变成列显示


  • cn和type作为行标签.


  • val作为显示数值


  • Excel中怎么实现动态行转列

  • 然后选择视图->冻结窗格->冻结首列  方便观看数据



  • 可以看到如下结果


  • Excel中怎么实现动态行转列

  • 完全符合动态行转列的需求,并且可以排序和筛选.太强大了.

关于Excel中怎么实现动态行转列就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

标题名称:Excel中怎么实现动态行转列
文章源于:https://www.cdcxhl.com/article20/igoojo.html

成都网站建设公司_创新互联,为您提供商城网站Google用户体验做网站云服务器品牌网站设计

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站制作