我想根据左边的相邻单元格将右列中的单元格组合成一个单元格。我试过合并,但我只能到目前为止。在线搜索后,我找不到任何可以解析每一行并合并左侧单元格跨度长度的内容。我知道这是一个CONCATENATE函数,但是如何让它解析整个电子表格呢?
这是我想要的结果的一个例子:
答案 0 :(得分:1)
这可能太复杂了 - 在这种情况下,我会回到绘图板并完成一个完整的VBA版本,但最初我正在寻找一个挑战,只使用公式构建解决方案。不幸的是,似乎没有标准的基于公式的方法来连接可变数量的细胞。
所以,为了做到这一点,我添加了一个功能:
Function CombineRange(ByRef rng As Range, ByVal delim As String)
Dim arr
Dim i As Long
arr = rng.Value
CombineRange = ""
For i = 1 To UBound(arr)
If i > 1 Then
CombineRange = CombineRange & delim
End If
CombineRange = CombineRange & arr(i, 1)
Next i
End Function
假设:
接下来,在新工作表上设置四列(我称之为“Collapsed”)
A - 开始行=(第一行)数据开始的任何行(2,在我们的例子中)
A - 开始行=(所有其他人)A2+B2
B - 偏移= {IFERROR(MATCH(FALSE,ISBLANK(INDIRECT(ADDRESS(A2+1,1,,,"YourData")&":A200")),0),0)}
请注意,这是一个数组函数,因此您需要在输入时执行shift + Enter
C - 等级1 = =INDEX(YourData!A:A,A2)
D - 合并等级2 = =IF(B2<=1, INDIRECT(ADDRESS(A2,2,,,"YourData")), CombineRange(INDIRECT(ADDRESS(A2,2,,,"YourData")&":"&ADDRESS(A2+B2-1,2)),"; "))