利用LAMBDA函数,结合其他函数编写的自定义函数,方便进行数据处理。下面是在mrexcel.com中学习整理的一些函数。用途:NUMTEXT函数只保留包含空格的文本,将yes/true转换为1,no/false转换为0,并将存储为文本的数字转换为数字。=LAMBDA(Array,
LET(Arr, Array,
Return, SWITCH(Arr&"", "", "", "YES", 1, "NO", 0, IFERROR(--(Arr), Arr)),
Return
)
)
使用:在单元格中输入=NUMTEXT(Array),其中,参数Array必需,返回数字、文本和/或空格的单元格区域。用途:ASELECT函数进行数组选择,选择数组中2行2列之间的区域,可以附加额外的列。=LAMBDA(a,rm,rx,cm,cx,ec,
LET(r,ROWS(a),c,COLUMNS(a),sr,SEQUENCE(r),sc,SEQUENCE(,c),
v,IFNA(XMATCH(rm,sr),1),w,IFNA(XMATCH(rx,sr),r),rp,(sr>=MIN(v,w))*(sr<=MAX(v,w)),
x,IFNA(XMATCH(cm,sc),1),y,IFNA(XMATCH(cx,sc),c),cp,(sc>=MIN(x,y))*(sc<=MAX(x,y)),
z,ISNUMBER(XMATCH(sc,ec)),
FILTER(FILTER(a,IF(AND(AND(cp),OR(z)),cp*z,cp+z)),rp)
)
)
使用:在单元格中输入=ASELECT(a,rm,rx,cm,cx,ec),其中,参数a是要操作的数组;参数rm,整数,最小行或起始行,0、1或忽略将取1;参数rx,整数,最大行或结束行,忽略将取ROWS(a)值;参数cm,整数,最小列或起始列,0、1或忽略将取1;参数cx,整数,最大列或结束列,忽略将取COLUMNS(a)值;参数ec,常量整数数组,附加额外的列,例如{5,7,10},忽略将不附加任何内容。用途:AMIN函数计算并返回数组每一行中的数值的最小值。=LAMBDA(a,as,sf,pa,
LET(d,"|",sa,AFLATTEN(as),s,FILTER(sa,sa<>""),
n,ROWS(s),x,INDEX(s,n),
IF(n=1,ATRIM(IF(ISNUMBER(IF(sf,FIND(x,a),SEARCH(x,a))),1&d,"")&pa,d,),T_SF(a,INDEX(s,SEQUENCE(n-1)),sf,IF(ISERROR(IF(sf,FIND(x,a),SEARCH(x,a))),"",n)&d&pa))
)
)
使用:在单元格中输入=AMIN(a,ns),其中,参数a为要操作的数组;参数ns为空,即总是被忽略,任何错误设置的数字都将被忽略,字符串将出错。注意,本函数调用了LAMBDA函数应用(十)中的函数APPEND2V。用途:AMAX函数计算并返回数组每一行中的数值的最大值。=LAMBDA(ar,ns,
LET(s,--ns,n,ROWS(ar),c,COLUMNS(ar),x,MAX(INDEX(ar,n,)),
IF(n=1,INDEX(APPEND2V(x,s,),SEQUENCE(ROWS(s))),AMAX(INDEX(ar,SEQUENCE(n-1),SEQUENCE(,c)),APPEND2V(x,s,)))
)
)
使用:在单元格中输入=AMAX(a,ns),其中,参数a为要操作的数组;参数ns为空,即总是被忽略,任何错误设置的数字都将被忽略,字符串将出错。注意,本函数调用了LAMBDA函数应用(十)中的函数APPEND2V。欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。