自定义函数 MCREDUCE 可使用五个参数,即累加器、值、行索引、列索引、一维索引
名称:MCREDUCE
备注:通过将LAMBDA函数应用到每个值并返回累加器中的总值,将数组减小为累计值。initial_value是初始值,必须设置。array是要减少的数组。fx是一个用于减少数组的LAMBDA,LAMBDA采用五个参数,即累加器、值、元素的数组行索引、元素的数组列索引、元素的数组一维索引。
引用位置:
=LAMBDA(initial_value,array,fx,IF(ISOMITTED(initial_value),"必须设置累加器初始值!",LET(arr,SEQUENCE(ROWS(array),COLUMNS(array)),REDUCE(initial_value,arr,LAMBDA(t,v,fx(t,INDEX(array,QUOTIENT(v-1,COLUMNS(arr))+1,MOD(v-1,COLUMNS(arr))+1),QUOTIENT(v-1,COLUMNS(arr))+1,MOD(v-1,COLUMNS(arr))+1,v))))))
插入函数对话框、函数参数对话框:
加载宏文件function Workbook_Open(){}中添加以下代码。
JSAREGISTER("user32.dll","CharPrevA","PPPP","MCREDUCE","initial_value,array,fx",1,"用户定义",undefined,undefined,"通过将LAMBDA函数应用到每个值并返回累加器中的总值,将数组减小为累计值。",'"initial_value是初始值,必须设置。","array是要减少的数组。","fx是一个用于减少数组的LAMBDA,LAMBDA采用五个参数,即累加器、值、元素的数组行索引、元素的数组列索引、元素的数组一维索引。"');