ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南

[求助] BYROW、LAMBDA嵌套CHOOSECOLS 为什么会出错?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-12-18 13:15 | 显示全部楼层
人有言兮是然 发表于 2024-12-18 12:39
map和reduce,好像只能是单个单元格作为参数,数组不能作为参数传递。我目前知道的函数有限,昨天突然看 ...

reduce怎么就不能是数组参数了

=DROP(REDUCE("",ROW(1:2),LAMBDA(x,y,HSTACK(x,CHOOSECOLS(B2:F4,y)))),,1)

TA的精华主题

TA的得分主题

发表于 2024-12-18 13:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
人有言兮是然 发表于 2024-12-18 12:29
如果保留2列和4列,非连续的,take drop就不太适合了。

choosecols没问题,问题在于byrow只能出一列结果,你非要他出两列

TA的精华主题

TA的得分主题

发表于 2024-12-18 13:27 | 显示全部楼层
不知道你是什么实际使用场景,为什么一定要套个lambda,直接choosecols不好吗

=CHOOSECOLS(B2:F4,1,3,5)

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-18 13:41 | 显示全部楼层
loirol 发表于 2024-12-18 13:15
reduce怎么就不能是数组参数了

=DROP(REDUCE("",ROW(1:2),LAMBDA(x,y,HSTACK(x,CHOOSECOLS(B2:F4,y))) ...

这个不是传递的数组,还是单个数据。那你这个为例,传递的是1和2,而不是{1,2}这种数组传递。

TA的精华主题

TA的得分主题

发表于 2024-12-18 15:20 | 显示全部楼层
人有言兮是然 发表于 2024-12-18 13:41
这个不是传递的数组,还是单个数据。那你这个为例,传递的是1和2,而不是{1,2}这种数组传递。

你直接choosecol(B2:F4,1,2)不就好了么

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-18 15:28 | 显示全部楼层
lanjian229 发表于 2024-12-18 15:20
你直接choosecol(B2:F4,1,2)不就好了么

这个1,2如果是个变量,且这个变量需要根据数组确定呢?
比如:
1,每一行是一个班级的姓名
2,每个班级的人数是不同的

那么如何实现提取最后三人,或者更复杂的,如果人数超过20人,取后三,否则取后二。

TA的精华主题

TA的得分主题

发表于 2024-12-18 15:47 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
BYROW只返回一列 聚合的数据  返回多列是不可以的

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-12-18 16:02 | 显示全部楼层
你是那块小饼干 发表于 2024-12-18 15:47
BYROW只返回一列 聚合的数据  返回多列是不可以的

能和lambda搭配使用,输入输出均可以是数组的(多个数据),有没有这样的函数?

TA的精华主题

TA的得分主题

发表于 2024-12-18 16:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
第一个公式有结果,不知道你的为什么没有。
第二个公式返回错误值,你期望的是返回一个三行二列的数组,但BYROW不具备聚合的能力,前面几楼也说过了。

image.png

TA的精华主题

TA的得分主题

发表于 2024-12-19 08:37 | 显示全部楼层
本帖最后由 loirol 于 2024-12-19 08:39 编辑
人有言兮是然 发表于 2024-12-18 15:28
这个1,2如果是个变量,且这个变量需要根据数组确定呢?
比如:
1,每一行是一个班级的姓名



没你想的那么复杂,lambda都能调用自己,为什么要想着一步到位?一个个传递之后再处理不好吗

image.png

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-25 15:43 , Processed in 0.038088 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表