Excel formula 使用溢出动态堆叠列的公式

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(

对于EXCEL 365

我正在寻找一个公式,它将动态地堆叠两列的内容,一列在另一列之上。例如,如果我从以下内容开始:

我希望公式能够产生:

我可以通过“半动态”实现这一点:

但我需要一个公式,而不是VBA。我可以使用以下工具检索并向下延伸一列:

=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)))