Я хочу объединить фиксированное значение строки с другим значением столбца, но пропуская пустые ячейки. У меня есть код, но он не работает. Пожалуйста, предложите
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)