你好,我是劉卓。歡迎來到我的公號,excel函數解析。工作中有時會遇到按指定次數重復內容的問題,今天就來分享下如何用365新函數解決這個問題。 案例分享 下圖左表是數據源,要求根據B列的次數重復A列的部門,結果如E列所示。 ![]() 1.常規輸出結果 ![]() 下面說下這個公式的運行過程: reduce的初始值是A2的部門,要循環的數組是A3:A6的部門。 第一次循環的是"財務部",先用vlookup查找"財務部"的次數,結果為2;然后用sequence將2擴展為{1;2};再用if將{1;2}返回對應的{"財務部";"財務部"}。通過一系列函數的運算,就實現了擴展的效果。 最后還要執行一個迭代的過程,用vstack將初始值"部門"和{"財務部";"財務部"}縱向合并為{"部門";"財務部";"財務部"}。這樣第一次循環就執行完成了,它的結果{"部門";"財務部";"財務部"}作為下一次循環的初始值。 第二次循環的是"生產部",還是重復執行上面一系列的過程。先用vlookup查找"生產部"的次數,結果為1;然后用sequence將1擴展為{1};再用if將{1}返回對應的{"生產部"}。 擴展完成后,用vstack將第一次循環的結果{"部門";"財務部";"財務部"}和{"生產部"}縱向合并為{"部門";"財務部";"財務部";"生產部"},作為第二次循環的結果,也是下一次循環的初始值。 后面的循環和前面的過程是一樣的,先把對應部門的數據擴展,然后用上一次的結果和擴展后的數據合并。重復這個過程,一直把A列部門循環迭代完為止。 2.給部門加編號 ![]() ![]() 4.各部門間插入空行并編號 ![]() PS:365新函數功能太好用了,很多難的問題被優化的簡單了,而且更接近編程式語言了,可以像編程一樣工作。 |
|