|
楼主 |
发表于 2023-12-20 16:43
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 shaowu459 于 2023-12-20 19:36 编辑
公式简要说明如下:
=ROWS( 统计结果数组的行数
REDUCE(
, 省略一参,使数组第一个值直接进入x
A2:K2,
LAMBDA(x, y,
IF(
y > @x, 如果y大于x顶端的值(也就是比x中的任意元素都要大,因为x是单调递增的)
VSTACK(y, x), 则将y追加到x顶端
IF(x = MIN(IF(x >= y, x)), y, x) 如果y不大于x顶端的值,则用y替换x中大于等于y的值中最小的那个。
)
)
)
)
因为x中维护的是单调递增数组,因此数组中的元素无重复,公式中y值替换部分也可以修改为以下写法:
=ROWS(
REDUCE(
,
A2:K2,
LAMBDA(x, y,
IF(
y > @x,
VSTACK(y, x),
IF(x = -LOOKUP(-y, -x), y, x) 使用LOOKUP获取x中大于等于y的最小值
)
)
)
)
|
|