2

作为我学习使用 excel 的一部分,我被困在两个地方:
1 - 获取引用列中的行值。
2 - 有没有更好的方法来计算序列。

使用的公式:

第一个序列

=SEQUENCE(A2, 1, 1,1)

对于剩余序列

=SEQUENCE(A3,1,LOOKUP(2,1/(B:B<>""),B:B)+ 1,1)
=SEQUENCE(A4,1,LOOKUP(2,1/(C:C<>""),C:C)+ 1,1)
=SEQUENCE(A5,1,LOOKUP(2,1/(D:D<>""),D:D)+ 1,1)
=SEQUENCE(A6,1,LOOKUP(2,1/(E:E<>""),E:E)+ 1,1)
...

而不是手动参考A3、A4、A5、A6;
如何获取列的行值?

我曾经LOOKUP()从上一列中获取最后一个值并开始序列。只是想知道我们是否有更好的方法来做同样的事情?

输出:

在此处输入图像描述

4

2 回答 2

2

您只能使用一个公式,然后拖动以填充所需的输出。

=SEQUENCE(INDEX($A$2:$A$10,COLUMN(A$1)),,IF(COLUMN()=2,1,MAX(A:A)+1))

在此处输入图像描述

于 2021-08-09T08:13:16.823 回答
1

这是一个下雨天(再次),所以我坐下来看看这是否可以在一个公式中完成。是的,它可以:

=LET(data,A2:INDEX(A:A,COUNT(A:A)+1),
rows,ROW(A1:INDEX(A:A,COUNT(A:A))),
columns,TRANSPOSE(ROW(A1:INDEX(A:A,COUNT(A:A)))),
array10,IF(rows>=columns,1,0),
totals,MMULT(array10,data),
totalsPrev,totals-data,
rowsOut,ROW(A1:INDEX(A:A,MAX(A:A))),
startValues,INDEX(totalsPrev,columns),
values,startValues+rowsOut,
endValues,INDEX(totals,columns),
IF(values<=endValues,values,"")
)

在此处输入图像描述

基本思想是开发数据的运行总计,然后使用这些总计来定义输出数组每一列中数据的起点和终点。

于 2021-08-09T15:51:20.950 回答