网站首页 > 精选教程 正文
如果你把上节课的BYROW函数学会,那这个函数学起来就非常容易。BYROW是将LAMBDA的规则应用到每一行,lambda中的变量代表每行。那MAP函数是将LAMBDA的运算规则运用到每个值。BYROW具备的特性MAP都有,唯一不同的是,MAP可以映射多个数组,我们直接看参数。
一、参数介绍
- array1 要映射的数组。
- lambda_or_array<#> 一个 LAMBDA,必须是最后一个参数,并且必须具有传递的每个数组的参数,或者必须有另一个要映射的数组。
二、介绍用法
a.普通用法
这里面x代表第一参数的每个值,lambda表达式每个x+1,所以最终得到一个和第一参数一样大小的数组,这里第一参数也可以选择一个一维数组。
b.多参数用法
这里我们输入了两个区域,这时候x代表第一个区域的每个值,y代表第二个区域的每个值,这时候运用x*2+y,他就会将第一个x和y进行预算,依次进行第二次,第三次,最终得到一个数组。这里也是和BYROW一样,lambda的运算结果只能是单值。
如果多参数的时候数据区区域大小不一致,我们可以看下会返回什么结果。我们可以发现他并不会得到两列都为3的数组,它会一一对应,把第一个区域和第二个区域一样大小的区域进行运算。第一组X Y, D6和H6可以运算,但是E6就没有可运算的Y。所以报错。
c.引用特性
map函数和byrow一样,当数组参数是区域引用,那变量会保留引用特性,例如上节课的COUNTIF,MAP也可以使用,这里就不再重复讲解,后续大家会经常看到 x:B1 等写法。
三、案例应用
案例1:
我们想求出每个人多次销量的数据,然后用逗号间隔,这个我们可以用BYROW完成。第一参数就是黄色姓名,然后变量代表每一行。当然我们也可以用MAP,去遍历每个值。当我们计算的第一参数只有一列的时候,用MAP和BYROW 都可以。
lambda表达式第一步FILTER筛选X代表的每一个都行,FILTER会得到每个姓名对应的多个值,因MAP的lambda只能返回单值,所以需要textjoin聚合为单值,用分隔符隔开。最终形成下图结果。
案例2:
计算姓名的个数,思路是每行姓名进行拆分,使用TEXTSPLIT 将名字拆成纵向的一维数组。然后使用ROWS函数判断数组有几行。然后使用MAP函数遍历每个内容,变量X就代表每个值。
- 上一篇: Map的几种遍历方式
- 下一篇: Map遍历的四种方法效率对比
猜你喜欢
- 2024-12-24 Go 语言中的映射(Map)详解:键值对实际是如何存储的
- 2024-12-24 HashMap如何计算大小和遍历?
- 2024-12-24 go map实现原理
- 2024-12-24 一文读懂map和hash_map的差异原理
- 2024-12-24 前端问答:Map 和 Object 有啥不同?
- 2024-12-24 Java、Set、Map集合框架知识大全,收藏备用
- 2024-12-24 Go 语言 map 如何顺序读取?
- 2024-12-24 C++ Map总结
- 2024-12-24 Python中很常用的函数map(),一起来看看用法
- 2024-12-24 golang常用数据结构之map详细讲解
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)