點擊藍字關注【秋葉 Excel】
發送【7】
免費領 1000+篇 Excel 精選教程!
本文作者:小爽
本文編輯:竺蘭
大家好,這里是秋葉 Excel~
有個做采購的讀者向我們咨詢:如何將下面的左表處理成右表的形式?
▲ 文末領取練習文件
分析圖片,我們可以知道,案例中的要求是將左圖中的月份,按照不同品類的水果列進行匯總合并。
說到分類匯總,大家除了想到數據透視表之外,可能也會想到Groupby 函數。
分組函數
如下圖所示 :
=GROUPBY(MONTH(A2:A21)&"月",B2:D21,SUM,,0)
Groupby 函數的語法規則如下 :
=GROUPBY(行字段,值區域,匯總方式,【是否包含標題】,【是否顯示總計】,【排序依據】,【篩選區域】,【相關方式】)
要匯總的字段是月份,由于月份列還是日期格式存在,所以我們先用 Month 函數將日期進行格式化。
根據上面的講解,相信大家可以很快就能理解這個函數公式:
分組的列:處理好的月份
值區域:B2:D21
匯總方式:求和
是否包含標題:不包含
是否顯示總計:不顯示
=GROUPBY(MONTH(A2:A21)&"月",B2:D21,SUM,,0)
函數做法很簡單,但可惜的是,這位讀者朋友的要求是用 PQ 來做~
(PS:PowerQuery,簡稱 PQ,是 Excel 自帶的數據處理的利器)
第一步,大家不難猜到,就是將數據導入到 PQ 編輯器中。
我們選擇【數據區域】,在【數據】選項卡,單擊【來自表格/區域】,單擊【確定】按鈕,即可進入 PQ 編輯器。
接下來,小爽就來介紹兩種 PQ 做法。
透視方法(PQ)
由于數據區域是一個二維表,我們可以先將表格轉換為一維表。
單擊【香蕉列】,按住【Shift鍵】,再單擊【西瓜列】,鼠標右鍵,單擊【逆透視列】。
(PS:逆透視列是指,選中的所有字段中,把列標題全部收集起來放到一列里,再重新匯總值數據;逆透視列經常被用在二維表轉一維表的處理上。)
轉換一維表之后,由于月份列是日期格式,所以我們需要將日期進行轉換。
選中【月份】列,單擊【轉換】選項卡,單擊【日期】,單擊【月份】選項,單擊【月份名稱】。
轉換日期后的月份是大寫的月份,要是想要阿拉伯數字的月份,我們可以在 M 函數公式中直接修改。
更改前
= Table.TransformColumns(逆透視的列,
{{"月份",
each Date.MonthName(_),
type text}})
Date.MonthName 函數,不難理解,就是將日期轉換為月份名字,也就是一月二月......
更改后
= Table.TransformColumns(逆透視的列,
{{"月份", each
Text.From(Date.Month(_))&"月",
type text}})
M 函數公式也不難理解,Date.Month 是將日期轉換為月數字,由于 M 語言有嚴格的格式要求,所以需要用 Text.From 函數先轉為文本,再進行"月"的拼接。
Text.From(Date.Month(_))&"月",
最后進行透視列即可完成。
(透視列的含義是:選中的字段中,每一種類別都作為一個列標題排開,再重新匯總數據。)
選中需要透視到列標題的列,也就是【屬性】列,單擊【轉換】選項卡,單擊【透視列】,值列選擇【值】,單擊【確定】按鈕。
到這里我們就匯總完成了。
前面是用透視的方法來做,接下來,小爽來介紹直接用Table.Group 函數來做~
分組匯總(PQ)
我們先將月份列的日期轉換為月份,方便后面進行分組。
跟前面的步驟一樣。
選擇【月份列】,在【轉換】選項卡下,單擊【日期】,單擊【月份】,單擊【月份名稱】。
同理,將月份中文名稱改成阿拉伯數字月份。
更改前
= Table.TransformColumns(源,
{{"月份", each Date.MonthName(_), type text}})
更改后
= Table.TransformColumns(源,
{{"月份", each Text.From(Date.Month(_))&"月", type text}})
日期轉換完成后,接下來就該分組了。
▋手動匯總
選中【月份列】,單擊【主頁】選項卡,單擊【分組依據】,選擇【高級】,依次錄入列名,操作,以及柱列。
此時分組匯總就完成啦。
不過,完成是完成了,但是大家有沒有發現,這樣做一點都不智能,總不能每次換不同列匯總都進行手動吧?
所以,我們下一步,需要做的就是將每列的匯總進行動態化。
▋動態匯總
首先,我們來觀察一下,手動匯總的 M 函數公式。
= Table.Group(
提取的月份名稱,
{"月份"},
{
{"香蕉", each List.Sum([香蕉]), type number},
{"蘋果", each List.Sum([蘋果]), type number},
{"西瓜", each List.Sum([西瓜]), type number}
})
從公式中,我們不難發現,核心就是要構建下面這種列表。
{
{"香蕉", each List.Sum([香蕉]), type number},
{"蘋果", each List.Sum([蘋果]), type number},
{"西瓜", each List.Sum([西瓜]), type number}
}
大家跟著我一起思考~
Q1:那列名從哪里來?
Table.ColumnNames函數就可以獲取列標題。
Q2:如何跳過月份?
List.Skip函數就可以跳過月份。
Q3:如何構造循環構造?
List.Transform函數來構造。
Q4:如何選取分組后的指定列的數據?
利用Table.Column函數來選擇表中的指定列數據。
Q5:如何對列進行求和?
List.Sum函數就能對列表進行求求和。
到這里,我們就將前面的手動分組匯總的 M 函數公式的第三參數,進行動態化了。
= Table.Group( 提取的月份名稱,{"月份"},
List.Transform(
List.Skip(Table.ColumnNames(源)),
(r)=>{r,each List.Sum(Table.Column(_,r))})
)
不過,假如你的數據源不太敏感,數據量也不多,那也可以試試讓 AI 來幫你干活。
WPS 靈犀
打開 WPS,側邊欄就有靈犀,點擊進入。
上傳我們的數據源附件,添加提示詞。
主要框架:說明數據源區域+表格處理要求+處理后示例+輸出格式
背景:上傳的 excel 工作簿中的 Sheet1 表中 A 列到 D 列是原始數據源。
要求:基于月份列中的日期列,按照月份進行分組合并
參考示例:|月份|香蕉|蘋果|西瓜| |1月|...
輸出格式:返回處理好的 excel 工作簿。
選擇【深度思考】,單擊【發送】。
此時,AI 就在思考啦~耐心等待一下下。
思考完成之后,靈犀會返給我們處理后的文件,單擊【按月份分組合并結果.xlsx】,就可以下載了。
打開處理后的表格,也是我們想要的結果:
似不似很簡單 ! ! !
本文主要介紹,在數據處理中,我們針對月份進行多列分組匯總的做法。
利用新函數 Groupy,進行匯總,超級方便。
針對二維表的處理,在 PQ 中,逆透視+透視是比較常見的思路;也給大家拓展了,PQ 中,多列分組,從手動多列分組,改成動態多列分組的思路。
最后還帶大家體驗了一下 WPS 靈犀的做法,感受 AI 工具在數據處理中的強大之處。
從傳統函數,到 PQ 自動化處理,再到 AI 工具,我們正邁向效率爆炸的辦公新時代。
不過,想要真正吃透 AI,只靠自己摸索還遠遠不夠。
數據分析可以交給用WPS 靈犀、DeepSeek,海報設計可以靠即夢一鍵生成,PPT 制作也能用Kimi快速產出……
AI 工具確實很強大,但前提是——你要會用、用得好、用得對。
所以,如果你也想玩轉 AI,不妨加入秋葉《AI 高效辦公 3 天實戰營》!
課程中,有金牌講師 @越越 手把手教學AI 數據分析、AI 寫文案、AI 設計、AI 做 PPT,助你從小白變高手,真正用 AI 提升工作效率 ↓
課程原價 99 元
還能免費領取 AI 辦公資料包
名額有限,立即掃碼報名吧!
掃碼報名后自動彈出班主任微信
一定要添加,才能上課+免費領取資料
最后,大家有利用 AI 處理過哪些數據問題呢?
歡迎留言討論~
發送【采購】
免費領本文配套練習文件!
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.