上面引用组合单元格
我有一个工作表,其中有许多按分级方式排列的单元格,单元格合并在一起:
我想要命名这些列(例如:第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”单元格,这将是合并单元格本身的文本)
还可以组合一个string来连接: