上面引用组合单元格

我有一个工作表,其中有许多按分级方式排列的单元格,单元格合并在一起:

示例表

我想要命名这些列(例如:第5行),像这样: MainGroupA-SubGroupA-SubSubGroupA

仅仅以经典的方式引用上面的字段将无法工作,因为上面的字段不再可用。 (在这个例子中:字段B1到F1)(即,当公式试图从“隐藏的”单元读取时,我不能inputA1&A2&A3 / R[-4]C&R[-3]C&R[-2]C )。

有没有办法做到这一点,而无需手动工作,或需要解除父母细胞? 我可能可以用一些外部文本编辑器甚至是VBA来做到这一点,但是更喜欢“Excel公式解决scheme”,因为它会保持更新新的组和列。

澄清:我想要在第5行中的所有列都有像A5中的文本

如果你想:

MainGroupA-SubGroupA-SubSubGroupA

在A5那么这应该工作:

 =A1&"-"&A2&"-"&A3 

编辑然后尝试:

  =OFFSET(A1,0,1-MOD(COLUMN(),6))&"-"&OFFSET(A2,0,MOD(COLUMN(),2)-1)&"-"&A3 

尽pipe这不会在整行中给出与A5中相同的文本。

pnuts的答案非常好,帮助我解决了一些testing案例。 然而,对于最后一列来说,要适应并产生空的string是有点困难的,所以我也写了一个VBA函数来完成我所需要的function。

打开VBA编辑器(ALT + F11)并在新模块中input以下代码:

 Public Function checkLeftIfEmpty(start As range) As String If start.Cells.Count > 1 Then checkLeftIfEmpty = "Only a single cell allowed as parameter" Exit Function End If Dim currentRange As range Set currentRange = start Do While currentRange.Column >= 1 If currentRange.Value <> "" Then checkLeftIfEmpty = currentRange.Value Exit Function Else Set currentRange = currentRange.Offset(0, -1) End If Loop End Function 

您现在可以使用checkLeftIfEmpty函数来查找包含文本的参数的左侧的第一个单元格(如果应用于“hidden by merge”单元格,这将是合并单元格本身的文本)

使用checkLeftIfEmpty

还可以组合一个string来连接:

使用checkLeftIfEmpty连接字符串