昨天,有人提了一個關於員工生日的難題:
其實,如果不要求姓名合併,用數據透視表挺容易實現的:
插入數據透視表 - 對日期進行月、日分組 - 把月拖到篩選標籤中 - 添加切片器:月
但要把同一天過日的員工姓名合併起來,就沒那麼容易了。小編分享兩種高能方法,一種是power Query轉換,第二種是用函數公式。
一、使用Power Query
1、效果演示
2、製作步驟
選取表格 - 數據 - 自表格/區域 ,啟動power Query
在power Query編輯器中,複製日期列,並分別轉換成月和天
再重命名標題為“月份”和“日期”
分組依據 - 選取高級 - 添加和設置月份和日期 為分組項,然後對員工進行求和。
點擊確定後,新生成的列會顯示錯誤結果
原公式:
= Table.Group(重命名的列, {"月份", "日期"}, {{"過生日的員工", each List.Sum([員工]), type text}})
修改為:
= Table.Group(重命名的列, {"月份", "日期"}, {"過生日的員工", each Text.Combine([員工],",")})
把powey中的結果導入到表格中,並用數據透視表進行透視:關閉並上傳至 -選數據透視表,再添加切片器即可(具體步驟不再詳述)
是不是感覺power query步驟很複雜,其實用一個Excel公式即可搞定。
二、使用函數公式
1、效果
可以選取不同的月份,動態生成該月份每一天過生日的名單。
2、公式
K3公式:
=IFERROR(TEXTJOIN(",",,FILTER(A$2:A326,TEXT(B$2:B326,"m-d")=K$1&"-"&J3)),"")
估計很多新手看不懂公式,小編就簡單介紹一下:
- TEXT(B$2:B326,"m-d") :把B列的日期轉成換“月-日”格式和給定的K$1&"-"&J3進行對比,作為filter函數的篩選條件。
- FILTER(篩選返回區域,條件):office365新增函數,根據條件返回篩選結果
- TEXTJOIN(連接符,,連接的多個值):office365新增函數,可以用指定的連接符號,把多個值連接成一個。
- IFERROR(表達式,""):把返回的錯誤值轉換成空
閱讀更多 數碼產品資訊 的文章