P.b*_*P.b 1 excel excel-formula spill-range excel-365
当获得此问题的公式解决方案时,插入行以使用标题分隔数据组,我尝试从溢出结果中删除第一行和最后一行。
这是使用的数据:
| A栏 | B栏 | C栏 | |
|---|---|---|---|
| 第 1 行 | 位置 | 物品 | 数量 |
| 第 2 行 | p1 | 帽子 | 2 |
| 第 3 行 | p3 | 帽 | 3 |
我开始于
=DROP(
REDUCE(0,ROW(A2:C3),LAMBDA(x,y,VSTACK(x,A1:C1,INDEX(A:C,y,),{"","",""}))),
1)
Run Code Online (Sandbox Code Playgroud)
然后,我不仅想删除 REDUCE 函数的起始值,还想删除最后一行,该行始终为空白。
为此我尝试过:
=DROP(
REDUCE(0,ROW(A2:C3),LAMBDA(x,y,VSTACK(x,A1:C1,INDEX(A:C,y,),{"","",""}))),.
{1,-1})
Run Code Online (Sandbox Code Playgroud)
我期望{1,-1}数组能够完成它(1对于它的第一行和-1最后一行)。然而这导致了:
我无法理解这种行为,所以我在更简单的范围和/或数组上尝试了它:
在A1我用过=SEQUENCE(3,3)
直接做同样的事情:=DROP(SEQUENCE(3,3),{1,-1}),给出了另一个结果:

有点有趣:=DROP(SEQUENCE(3,3),{1,1,1,1,1})
结果是{4,4,4,4,4}
我知道我可以使用 DROP 两次来获得所需的结果,但我无法解释这种行为。
这是因为数组的第一个参数改变了数组/范围的大小,而 Excel 无法在同一计算中引用它?
新数组函数的另一个示例在传递数组或范围时表现出不同的行为。
看来,在某些结构中,这些函数的行为类似于旧函数,例如OFFSET,当传递工作表范围时,该范围可能需要首先“取消引用”到数组。
例如,对于A1包含=SEQUENCE(3,3),如您的示例所示,=DROP(A1#,{-1,1})返回{#VALUE!,#VALUE!}。
然而,例如,使用'取消引用N'该范围,即会=DROP(N(+A1#),{-1,1})产生{1,4}与 相同的结果=DROP(SEQUENCE(3,3),{1,-1})。
至于 的结果=DROP(SEQUENCE(3,3),{1,-1}),我不明白你如何期望它返回{4,5,6},因为你实际上要求它同时执行=DROP(SEQUENCE(3,3),1), ie{4,5,6;7,8,9}和=DROP(SEQUENCE(3,3),-1), ie {1,2,3;4,5,6},这将需要第三个维度,尽管 Excel 从来没有能力存储内部二维以上的数组。DROP的第二个和第三个参数并非设计为在传递数组时累积使用(如果这是您的意图)。
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |