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
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)