根据左列单元格合并相邻行单元格
Combine Adjacent Row Cells Depending on their Left Column Cell
我想根据左边相邻的单元格,将右边一列的单元格合并为一个单元格。我尝试了合并,但我只能做到这一点。在网上搜索后,我找不到任何可以解析每一行并结合左侧单元格跨度长度的东西。我知道这是一个 CONCATENATE 函数,但我如何让它解析整个电子表格?
这是我想要的上述结果的示例:
这可能太复杂了 - 在这种情况下我会回到绘图板并做一个完整的 VBA 版本,但最初我只是在寻找一个仅使用公式构建解决方案的挑战。不幸的是,似乎没有标准的 formula-based 方法来连接可变数量的单元格。
所以,为了完成这个,我添加了一个函数:
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
假设:
- 您的数据在一个名为 "YourData"
的 sheet 中
- 你的合并数据是A列
- 你的"single row"数据是B列
- 第 1 行是某种 header 行。
接下来,在一个新的sheet上设置四列(我称之为"Collapsed")
A - 起始行 =(第一行)数据从哪一行开始(在我们的例子中是 2)
A - 起始行 =(所有其他)A2+B2
B - 偏移量 = {IFERROR(MATCH(FALSE,ISBLANK(INDIRECT(ADDRESS(A2+1,1,,,"YourData")&":A200")),0),0)}
注意这是数组函数,输入时需要shift+Enter
C - Level1 = =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)),"; "))
我想根据左边相邻的单元格,将右边一列的单元格合并为一个单元格。我尝试了合并,但我只能做到这一点。在网上搜索后,我找不到任何可以解析每一行并结合左侧单元格跨度长度的东西。我知道这是一个 CONCATENATE 函数,但我如何让它解析整个电子表格?
这是我想要的上述结果的示例:
这可能太复杂了 - 在这种情况下我会回到绘图板并做一个完整的 VBA 版本,但最初我只是在寻找一个仅使用公式构建解决方案的挑战。不幸的是,似乎没有标准的 formula-based 方法来连接可变数量的单元格。
所以,为了完成这个,我添加了一个函数:
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
假设:
- 您的数据在一个名为 "YourData" 的 sheet 中
- 你的合并数据是A列
- 你的"single row"数据是B列
- 第 1 行是某种 header 行。
接下来,在一个新的sheet上设置四列(我称之为"Collapsed")
A - 起始行 =(第一行)数据从哪一行开始(在我们的例子中是 2)
A - 起始行 =(所有其他)A2+B2
B - 偏移量 = {IFERROR(MATCH(FALSE,ISBLANK(INDIRECT(ADDRESS(A2+1,1,,,"YourData")&":A200")),0),0)}
注意这是数组函数,输入时需要shift+Enter
C - Level1 = =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)),"; "))