Объединить значение ячейки с заголовком и игнорировать пробелы

Объединить значение ячейки с заголовком и игнорировать пробелы

Я хочу объединить фиксированное значение строки с другим значением столбца, но пропуская пустые ячейки. У меня есть код, но он не работает. Пожалуйста, предложите

введите описание изображения здесь

Public Function SuperJoin(r1 As Range, r2 As Range, IgnoreBlanks As Boolean) As String
Dim i As Long, j As Long
Dim s As String

j = r2.Cells.Count
For i = 1 To j
  If IgnoreBlanks = True Then
    If r2.Cells(i) = True Then
        If r2.Cells(i).Value <> "" Then s = s & "-" & r2.Cells(i)
    End If
  Else
    If r2.Cells(i) = True Then
        s = s & "-" & r2.Cells(i)
    End If
  End If
Next

i = r1.Count

For j = 1 To i
    SuperJoin = SuperJoin & "----" & r1(1, j) & r2(1, j)
Next j

SuperJoin = Mid(SuperJoin, 5)

End Function

решение1

Если вы хотите сделать это без VBA, то эта уродливая формула справится с задачей.

=ЕСЛИ(ЕСТЬПУСТО(B5),"",B$1&"-"&B5&", ") &ЕСЛИ(ЕСТЬПУСТО(C5),"",C$1&"-"&C5) &ЕСЛИ(ЕСТЬПУСТО(D5),"", (ЕСЛИ(ЕСТЬПУСТО(C5),D$1&"-"&D5,", "&D$1&"-"&D5)))

Он находится в ячейке B12 в скрине ниже. К сожалению, формула всегда предполагает, что есть по крайней мере два столбца с данными, иначе она добавит ненужный , как показывают результаты в E. (Ячейка B13)

введите описание изображения здесь

Связанный контент