Excel Lambda函數打包複雜公式及業務邏輯

2021-02-13 wujunmin

近兩年,Excel函數我認為經歷了跨越式發展。第一個跨越是溢出函數,一個函數可以突破單元格的限制,生成一個區域,如下面的例子:

FILTER函數可以按篩選條件直接生成一個表,UNIQUE可以去除重複值。近期的LET、LAMBDA函數是第二個重大跨越:可以在不編程(無需VBA)的情況下,將複雜的計算過程或者業務邏輯打包成一個自定義函數,進行重複使用。以LAMBDA函數舉兩個零售業的小例子,請看視頻:

視頻中生成了兩個中文自定義函數,一個叫業績狀態,填入業績和銷售目標自動打對勾或者叉表示業績是否完成;一個叫貨齡(即貨物到現在上市了多久),自動按照該商品的上市日期和今天的差值進行分組計算。

業績狀態如果使用傳統Excel公式,你每次需要這樣輸入:

IF(業績/目標>=1,UNICHAR(10004),UNICHAR(10006))

商品的貨齡你需要長竄的公式(IF函數也可):

SWITCH (TRUE (),    TODAY () - 上市日期 <= 90, "3個月以下",    TODAY () - 上市日期<= 180, "4-6個月",    TODAY () - 上市日期<= 365, "7-12個月","12個月以上")

實際業務中,你的邏輯可能更為複雜,公式長達數百個字符。在Excel中使用LAMBDA這樣的新函數可以將你的計算過程全部打包,生成一個只有幾個字符的包裹。後期直接輸入包裹名字即可實現全部計算過程。接下來以業績達成狀態為例演示如何操作。

在D列輸入以下公式:

LAMBDA(業績,目標,IF(業績/目標>=1,UNICHAR(10004),UNICHAR(10006)))(B2,C2)

其中,業績和目標是計算的參數名稱,可以英文也可以中文命名,依據計算的複雜程度,可以是一個或者多個參數;隨後是要對參數怎麼計算,計算的邏輯和傳統的IF語句一致;最後一個部分是計算哪個單元格,我們有兩個參數,所以對應選擇相應的業績和目標單元格。

可以看到,計算的結果和直接使用IF語句一致。如果LAMBDA的作用僅僅局限於此,我們也沒必要介紹這樣一個雞肋的函數,這增加了公式的複雜度。

接下來是打包這個公式為一個表面簡潔函數的過程:在公式選項卡下找到定義名稱,定義名稱為「業績狀態」,引用位置輸入剛才創建的LAMBDA函數(到計算邏輯為止)

這樣「業績狀態」函數定義完成,後期在工作簿中就可以復用了。計算貨齡的LAMBDA也附上:

LAMBDA(X, SWITCH(TRUE(),TODAY()-X<=90,"3個月以下",TODAY()-X<=180,"4-6個月",TODAY()-X<=365,"7-12個月","12個月以上") )

本文小試牛刀。後期將會介紹更多LAMBDA函數打包零售業務邏輯的案例,通過函數實現類似編程的自動化功能,效率提升。

當然,非常遺憾的是,目前該函數僅適用於365的Excel版本。

相關焦點

  • Excel九大條件邏輯判斷函數公式,上班直接套用,職場工作效率高
    Excel裡面準備好了各種各樣的邏輯判斷函數提供服務,即使遇到複雜的多條件判斷問題,使用函數組合也能順利解決。為了幫你最具性價比的提升Excel條件判斷技能,今天給你九大職場辦公最常用的邏輯判斷excel公式,上班時直接套用即可!
  • 用Excel繪製複雜的函數圖像
    在Excel中可以輕鬆地繪製出複雜的數學函數圖像,還可以將多個函數圖像放入同一圖表中進行對比。
  • 使用Pandas讀取複雜的Excel數據
    問題緣起pandas read_excel函數在讀取Excel工作表方面做得很好。但是,如果數據不是從頭開始,不是從單元格A1開始的連續表格,則結果會不是很好。比如下面一個銷售表,使用read_excel讀取:
  • Excel計算當月天數,三個函數公式,你喜歡哪個?
    當您對Excel函數越熟練,寫公式的時候,方法會越多,思路也會越清晰。借用部落窩教育Excel極速貫通班滴答老師的話來說,學函數其實就是學邏輯,單一的函數用法,看Excel幫助文件,或許都能明白,實際工作中,那就難在函數的嵌套使用。因為一般解決工作的問題,都不可能只是用到單一的一個函數。
  • Excel公式與函數之美11:小而美的函數之SMALL函數
    >函數之美SMALL函數的原理很簡單,但將其組合在公式中,能夠幫助我們按順序獲取數據,這可能就是SMALL函數的美妙之處。 結合ROW函數對數據排序如圖2所示,在單元格C1中輸入公式:=SMALL($A$1:$A$6,ROW(A1))下拉至單元格C6,即將單元格區域A1:A6中的數字由小到大排列。
  • 工作中最常用的Excel函數公式,幫你整理齊了!(建議收藏)
    我們在C2單元格輸入公式:=IF(COUNTIF(A:A,A2)>1,"重複",""),可以將A列重複的姓名尋找出來。 在C2單元格輸入公式:=TRUNC((DAYS360(B2,TODAY(),FALSE))/360,0)上述方法雖然可以,但是略顯複雜,我們可以直接使用DATEDIF函數來處理,公式:=DATEDIF(B2,TODAY(),"y") 。
  • DataFrame(10):數據轉換——map()函數的使用
    1)map()函數作用將序列中的每一個元素,輸入函數,最後將映射後的每個值返回合併,得到一個迭代器。2)map()函數原理圖原理解釋:上圖有一個列表,元素分別是從1-9。map()函數的作用就是,依次從這個列表中取出每一個元素,然後放到f(x)函數中,最終得到一個通過函數映射後的結果。3)map()內置函數和Series的map()方法① map作為python內置函數的用法
  • EXCEL公式裡面的大括號、雙減號是什麼意思?
    Excel對於平常不接觸到數據統計工作的小夥伴來說,僅僅是用來更清晰的展示文字,使邏輯更加清晰。
  • excel函數公式大全之 if 的使用詳解
    如果想要完整的excel函數公式的全部內容可以自行在我的百度網盤下載。
  • Excel為什麼要在公式中使用函數
    或添加公眾號 ID: lwltszl28       夥伴們在工作表中操作計算公式時,很多都會用到工作表函數、自定義函數,因為這些函數可以強化公式功能,能使用加+、減-、乘*、除/、大於>、小於<...等運算符難以完成,甚至不可能完成的計算目的
  • 一篇學透500個函數!含常用財務Excel函數示例大全,太實用了~
    先到先得其實,學習知識都要先有目的,學習函數也是一樣,如果你連函數能做什麼,達成什麼效果不清楚,想要很好理解和運用函數公式,談何容易!《Excel函數應用500例》這套資料,介紹透徹500個函數,從函數公式格式到應用實例清楚呈現,還把各個函數按應用範圍分門別類,讓大家直接找到相應用途的函數。
  • DataFrame(11):數據轉換——apply(),applymap()函數的使用
    1、apply()函數1)apply()函數作用① apply()函數作用於Series和Series的map()方法作用是一樣的,依次取出Series中的每一個元素作為參數,傳遞給function函數,進行一次轉換。
  • DataFrame(12):數據轉換——apply(),applymap()函數的使用
    id=3943f6b14c322e683fb2fe3bfdd11f63&sub=06345554A2234845B796B525E76697ED  2)apply()函數作用於Series① 案例一:1代表男,0代表女,完成如下替換df = pd.read_excel(r"C:\Users\黃偉\Desktop\test.xlsx",sheet_name=3)
  • EXCEL函數與公式:錯誤類型與公式
    錯誤類型:1、#N/A表示公式找不到要求查找的內容。在VLOOKUP、HLOOKUP、LOOKUP或MATCH函數中,如果出現#N/A錯誤,那主要是找不到引用值,可使用IFERROR錯誤函數來進行處理。2、#VALUE!這個錯誤出現的頻率極高,表示入公式的方式錯誤。或者引用的單元格錯誤。
  • 新手學excel函數公式,必須從這幾個知識點學起!
    函數公式最excel基本的應用之一,但要想學好函數公式,必須先掌握以下幾個知識點。
  • Excel多表合併新思路,不用複雜函數公式,自帶合併功能一鍵搞定
    通常我們都是用一些複雜的函數公式或者是vba代碼來完成這種複雜的工作。如上圖所示,我們今天就來學習一下,在不使用函數和vba代碼的情況下,如何快速的將多個工作表的數據按照我們的格式要求進行快速的匯總。第一步:我們需要先搭建我們需要的表格模板,對於原始的表格需要提取做一下設置。
  • Excel 星號*用法總結
    數組公式為:=($C4>95)*(C4<105)*(AND(ABS($D4:$F4)<0.5))解釋:AND函數返回的是一個邏輯值。「AND(與)」 就是」並且」的意思。AND函數有兩個(或以上)參數, AND的功能就是取這幾個參數的交集,只要參數中有任何一個的值是FALSE, 那麼AND函數的值就是FALSE; 僅當所有參數都是TRUE的時候, AND函數的值才是TRUE。這裡的excel星號*表示邏輯乘,true為1,flase為0。
  • 【Excel公式基礎】Excel公式中的ROW和COLUMN函數都是幹嘛用的,看完這篇教程終於明白了!
    當我們使用公式的時候,往往希望公式非常靈活,這就需要公式裡作為參數的數字常量可以根據需要去變。這一點現在不理解沒關係,隨著學習的深入,慢慢就會明白了。在Excel的公式應用方面,有三個非常重要的基本功,公式裡的三板斧:$,邏輯值,還有就是數列的構造。
  • 如何使用EXCEL函數(公式)
    什麼是函數?Excel中的函數其實就是一些預定義的公式,我們按照一定的格式給定合適的輸入值,EXCEL就是自動計算,產生輸出值。
  • excel if函數 if函數嵌套用法
    簡單的 excel if函數應用例子:下圖數據在d列顯示如下結果:如果數據1大於60則顯示合格,否則顯示不合格。那麼在d2單元格輸入以下公式:=if(a2>60,"合格","不合格")然後向下拖拽,自動生成數據,如下圖D列效果。