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

492·遍历单元格引用

(2025-07-13 09:39:51)
标签:

map

遍历单元格

分类: 公式技巧

EXCEL和WPS 表格都新增了一组遍历数组的自定义函数,如BYCOL、BYROW、MAP、REDUCE、SCAN等。

这些函数使得我们可以对数组内部,进行判断或计算。

492·遍历单元格引用
如图,由左侧区域得到右侧两列结果。

我们需要在左侧区域逐一判断是否是“金额”。

返回的结果仍是原始区域大小,不需要聚合。

以上遍历数组函数,只有MAP不带聚合。

所以,我们可以使用MAP遍历A1:F9数据区域。

=MAP(A1:F9,

MAP要与LAMBDA配合使用。

LAMBDA函数的参数,就代表了A1:F9区域的每一个单元格。

=MAP(A1:F9,LAMBDA(X,

我们可以对这个参数进行判断,如果它等于“金额”,则做什么……

=MAP(A2:F9,LAMBDA(X,IF(X="金额",

关键是MAP向LAMBDA传递的每一个X值,是【引用】,还是一个具体的【值】?

492·遍历单元格引用

公式中OFFSET(X,1,0)部分是指,由“金额”单元格,向下移动一位。

OFFSET的第一个参数必须是引用,这与COUNTIF,SUMIF的第一个参数必须是引用一样。

说明,MAP向LAMBDA传递的是单元格引用。

公式的作用,相当于直接用IF判断数组。

492·遍历单元格引用

最终需要TOCOL转成一列的话,需要在IF判断为“假”时,给它赋一个错误值NA()。

492·遍历单元格引用

因为TOCOL函数可以忽略空单元格,忽略错误值,却不能忽略0值。

MAP、IF最后的结果都不是单元格引用,而是空单元格的值“0”。

492·遍历单元格引用

如本例,需要多一个判断.

492·遍历单元格引用

那么无论使用IF数组判断,还是MAP遍历两个数据区域判断,都要注意两个区域之间的相对关系。

492·遍历单元格引用

如此公式中MAP第二个参数,必须根据第一个参数A2:F9的位置,确定向上移动一位的区域,即A1:F7或F8或F9。

0

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

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

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

新浪公司 版权所有