Excel formula 使用溢出动态堆叠列的公式
对于EXCEL 365 我正在寻找一个公式,它将动态地堆叠两列的内容,一列在另一列之上。例如,如果我从以下内容开始: 我希望公式能够产生: 我可以通过“半动态”实现这一点: 但我需要一个公式,而不是VBA。我可以使用以下工具检索并向下延伸一列:Excel formula 使用溢出动态堆叠列的公式,excel-formula,Excel Formula,对于EXCEL 365 我正在寻找一个公式,它将动态地堆叠两列的内容,一列在另一列之上。例如,如果我从以下内容开始: 我希望公式能够产生: 我可以通过“半动态”实现这一点: 但我需要一个公式,而不是VBA。我可以使用以下工具检索并向下延伸一列: =INDEX(A:A,SEQUENCE(COUNTA(A:A))) 但我不知道如何处理两列 有什么想法吗?将行($1:1)替换为序列(COUNTA(A:A)+COUNTA(C:C)) =IF(SEQUENCE(COUNTA(A:A)+COUNTA(
=INDEX(A:A,SEQUENCE(COUNTA(A:A)))
但我不知道如何处理两列
有什么想法吗?将行($1:1)
替换为序列(COUNTA(A:A)+COUNTA(C:C))
=IF(SEQUENCE(COUNTA(A:A)+COUNTA(C:C))顺序重要吗?@ScottCraner顺序不重要……A1、C1、A2、C2可以吗?如果有数据,是B被故意跳过,还是空白,还是被包括在内?看看这些答案中是否有一个能回答你的问题:两个答案都很好!我只是放弃了SORT()
和UNIQUE()
它还可以处理将B列留空的问题!非常感谢!
Option Explicit
Public Function stack2(r1 As Range, r2 As Range) As Variant
Dim c1 As Long, c2 As Long, r As Range, temp
Dim i As Long
c1 = r1.Count
c2 = r2.Count
ReDim temp(1 To c1 + c2, 1 To 1)
i = 1
For Each r In r1
temp(i, 1) = r.Value
i = i + 1
Next r
For Each r In r2
temp(i, 1) = r.Value
i = i + 1
Next r
stack2 = temp
End Function
=INDEX(A:A,SEQUENCE(COUNTA(A:A)))
=IF(SEQUENCE(COUNTA(A:A)+COUNTA(C:C))<COUNTA(A:A)+1,INDEX(A:A,SEQUENCE(COUNTA(A:A)+COUNTA(C:C))),INDEX(C:C,SEQUENCE(COUNTA(A:A)+COUNTA(C:C))-COUNTA(A:A)))