加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

488·LAMBDA遍历二维表

(2024-04-22 20:51:25)
标签:

lambda

二维表

遍历

分类: 公式技巧

看到本文的朋友,我假定您已读过:

LAMBDA帮助FILTER突破数组限制》

在上一篇文章当中,在A列中寻找有过三种履历的数据。

公式中,LET首先定义了一个自定义函数【名称】“履历”。

488·LAMBDA遍历二维表

紧接着LAMBDA为这个函数,定义了参数“Y”和函数的计算过程。

函数“履历”就是在计算三种履历中的某一种,是否在A列出现过。

比如,给定Y=0,就是在计算A列数据是否有“公务员履历”。

给定Y=-1,就是在计算A列数据是否有“大学履历”。

给定Y=-2,则是在计算A列数据是否有“军人履历”。

之后,LET又定义了一个自定义函数【名称】“全履历”。

488·LAMBDA遍历二维表

“全履历”由LAMBDA指定参数“Y并给出了计算过程:

IF(y=-2,履历(y),履历(y)+全履历(y-1)))

这是个递归计算,可以遍历了列方向的单元格。

最后输出结果“全履历(0)”。

计算出三履历中,出现了几个。

这个公式向下复制,

结果是2,表示有过2种履历。

结果是3,表示有过3种履历。

公式向下复制过种中,COUNTIF(A2……

不断变为A3,A4,A5……

这也是一个变量。

如果问题进一步升级。

我想知道A列35个数据中,3种履历的共有多少?

那就需要将A2这个行方向上的变量,定义成未知数“X”。

而且还需要再定义一个【名称】,如“全履历和”,

以遍历行方向的35个数据。

488·LAMBDA遍历二维表

公式中,将COUNTIF(A2……,换成了变量:

COUNTIF(INDEX($A$1:$A$35,X)

自定义函数“履历(Y)”和“全履历(Y)”,

都变成了双参数函数“履历(X,Y)”和“全履历(X,Y)”

新定义的【名称】“全履历和(X,Y)”,

是对“全履历(X,Y)”等于3,也就是三个履历的记录计数。

SUM((全履历(x,y)=3)*1)

这里面“全履历(x,y)=3”,

两个未知数,分别实现了遍历表格的行字段和列字段。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有