Combine el valor de las celdas con el encabezado e ignore los espacios en blanco

Combine el valor de las celdas con el encabezado e ignore los espacios en blanco

Quiero combinar el valor de la fila fija con el valor de la columna diferente, pero omitiendo las celdas en blanco. Tengo un código pero no funciona. Por favor recomiende

ingrese la descripción de la imagen aquí

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

Respuesta1

Si quieres hacerlo sin VBA, esta fea fórmula funcionará.

=SI(ESBLANCO(B5),"",B$1&"-"&B5&", ") &SI(ESBLANCO(C5),"",C$1&"-"&C5) &SI(ESBLANCO(D5),"", (SI(ESBLANCO(C5),D$1&"-"&D5,", "&D$1&"-"&D5)))

Está en la celda B12 en la tapa de la pantalla a continuación. Desafortunadamente, la fórmula siempre supone que hay al menos dos columnas con datos o agregará un , como lo muestran los resultados en E. (Celda B13)

ingrese la descripción de la imagen aquí

información relacionada