我想根据左侧的相邻单元格将右列中的单元格合并为一个单元格。我尝试了合并,但我只能做到这一点。在网上搜索后,我找不到任何可以解析每一行并结合左侧单元格跨度长度的东西。我知道这是一个 CONCATENATE 函数,但我如何让它解析整个电子表格?
这是我想要的上述结果的一个示例:
最佳答案
这可能太复杂了——在这种情况下,我会回到绘图板并做一个完整的 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
假设:
接下来,在新工作表上设置四列(我称之为“折叠”)
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)),"; "))
关于excel - 根据左列单元格组合相邻行单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36403264/