3

我有以下格式的数据表。

数据
在此处输入图像描述

我希望完成的表格能够像下面突出显示的那样填充空白列。

成品表
在此处输入图像描述

因此,我需要一个公式或 VBA 来返回并连接每行中非空白单元格的标题。

4

1 回答 1

7

使用¹以下作为数组公式

=TEXTJOIN("-->", TRUE, IF(LEN(C3:I3), C$2:I$2, ""))

在此处输入图像描述

Excel 2016 之前的版本

虽然您可以将一系列 IF 语句串在一起,但更简洁的替代方法可能是编写用户定义的函数(又名 UDF)。

在标准 VBA 模块代码表中:

Function udf_Stitch_Together(r As Range, _
                             h As Range, _
                             Optional d As String = "-->", _
                             Optional blnks As Boolean = False) As String
    Dim s As String, c As Long
    For c = 1 To r.Cells.Count
        If CBool(Len(r.Cells(c).Text)) Then _
            s = s & IIf(Len(s), d, vbNullString) & h.Cells(c).Text
    Next c
    udf_Stitch_Together = s
End Function

在此处输入图像描述


¹ TEXTJOIN是随 Excel 2016 在以下版本中引入的:适用于 Android 手机的 Excel、Excel Mobile、带有 Office 365 的 Excel 2016、适用于 Mac 的 Excel 2016、Excel Online、适用于 iPad 的 Excel、适用于 iPhone 的 Excel 和适用于 Android 平板电脑的 Excel。

于 2017-03-29T22:18:56.330 回答