文 前 推 薦
編按:
在前面我們已經說過顏色求和實際是個偽需求,但仍然有夥伴對顏色求和有需要,並且提出了不用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個函式、練習課件、輔導答疑。