Office 365 Excel 公式 - REDUCE() 公式中我遗漏了什么吗?

问题描述 投票:0回答:2

我想做一些事情,比如以复杂的方式将一个数组投影/膨胀到另一个数组

但是首先简单来说,我想做的是将数组的元素加倍:

{1,2,5,4} => {1,1,2,2,5,5,4,4}

我想,这只是在 Python、Power Query 等公园里散步而已。

事实证明,我花了很多时间来了解如何创建一个空数组作为提供给

HSTACK()
的初始值,例如:

# No such thing as {} in Excel Formulas
=REDUCE({},{1,2,5,4},LAMBDA(a,b,HSTACK(a, HSTACK(b,b))))

...在意识到这是不可能的之后,我必须给它一个占位符,然后再将其删除:

=DROP(REDUCE("foo",{1,2,5,4},LAMBDA(a,b,HSTACK(a, HSTACK(b,b)))),,1)

这是唯一的方法吗?如果你问我的话我会很尴尬。

excel excel-formula office365
2个回答
1
投票

我的两分钱是避免在这里

LAMBDA()
。只是一些数组操作:

=LET(input,{1,2,5,4},times,2,TOROW(IFNA(EXPAND(input,times),input),,1))

这确实假设您的输入是水平数组/范围。


1
投票

你可以使用

LET
:

=LET(d,{1,2,5,4},
TOROW(HSTACK(d,d)))
© www.soinside.com 2019 - 2024. All rights reserved.