您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關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查詢的結果大致如下。
其中type可能是發布或者審核.
ts 表示月 日 和小時
cn表示模塊類型
val表示數量.
將這個結果導入至Excel
選擇插入,數據透視表
然后將ts 設置為列標簽,這樣 ts 就由行變成列顯示
cn和type作為行標簽.
val作為顯示數值
然后選擇視圖->凍結窗格->凍結首列 方便觀看數據
可以看到如下結果
完全符合動態行轉列的需求,并且可以排序和篩選.太強大了.
關于Excel中怎么實現動態行轉列就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。