當前位置: 妍妍網 > 辦公

用LAMBDA自訂顏色求和、顏色計數函式,不用VBA程式碼

2024-04-29辦公

文 前 推 薦


編按:

在前面我們已經說過顏色求和實際是個偽需求,但仍然有夥伴對顏色求和有需要,並且提出了不用VBA程式碼做自訂顏色求和函式的需要。

有一些夥伴提出: 「能否給一個不用VBA程式碼的自訂顏色求和函式?

簡單,小窩今天安排上了。

在 中,小窩推薦了4種顏色求和方法,其中Sumcolor自訂函式用來挺高大上的,但是需要輸入VBA程式碼。

如果討厭程式碼,用LAMBDA函式自訂顏色求和函式就可以了。(WPS表格也支持LAMBDA自訂。)

開啟「定義名稱」對話方塊,使用LAMBDA函式定義自訂函式SumColor。

在參照位置中輸入公式=Lambda(x,y,sum((get.cell(63,indirect("r"&row(x)&"c"&column(x),0))=get.cell(63,y))*x))

說明:

為自訂函式Sumcolor設定兩個參數,X和Y。X代表要求和的數據區域,Y代表顏色單元格。

get.cell(63,indirect("r"&row(x)&"c"&column(x),0)),可以獲得求和區域中所有單元格的填色數位。

get.cell(63,y),獲得顏色單元格的填色數位。

最後用SUM函式對填色相等的單元格數位求和。

現在可以用SumColor顏色求和了。

將檔保存為支持宏的xlsm格式。

後續如果有其他工作簿需要顏色求和,直接開啟今天保存的xlsm檔,復制使用了自訂函式的單元格貼上到新檔中,再清除貼上的內容即可使用自訂函式了,不用重新定義。

最後一次性附送大家按顏色計數、求平均值、求最大最小值的自訂函式公式。

按顏色計數Countcolor:

=Lambda(x,y,sum((get.cell(63,indirect("r"&r ow(x)&"c"&column(x),0))=get.cell(63,y))*1))

按顏色求最大值Maxcolor:

=Lambda(x,y,max((get.cell(63,indirect("r"&row(x)&"c"&column(x),0))=get.cell(63,y))*x))

按顏色求最小值Mincolor:

=Lambda(x,y,min((get.cell(63,indirect("r"&row(x)&"c"&column(x),0))=get.cell(63,y))*x))

按顏色求平均值Averagecolor:

=Lambda(x,y,let(a,get.cell(63,indirect("r"&row(x)&"c"&column(x),0)),b,get.cell(63,y),sum((a=b)*x)/sum((a=b)*1))

課件下載方式


掃碼入群,下載視訊配套的Excel課件練習。

最後,歡迎加入Excel函式訓練營,學習68個函式、練習課件、輔導答疑。