Digamos que tenemos una tabla de préstamos con la garantía correspondiente. Necesitamos, por ejemplo, mostrar una lista de garantías para cada préstamo en una celda.
Excel sólo puede proporcionarnos una función simple CONCATENATE, pero necesitarás seleccionar las celdas necesarias manualmente. Para simplificar el trabajo, necesitamos automatizar el proceso de combinar texto de diferentes celdas según una condición. Entonces, si necesita "concatenar" rápidamente texto de diferentes celdas usando la condición IF, entonces debe escribir su propia función.
Tabla de préstamos garantizados:
Entonces, creemos nuestra propia función y llamémosla CONCATIF. Para ello abre el menú Service - Macros - Visual Basic Editor, inserta el módulo VBA (menú Insert - Module) y copia allí el texto de esta función:
Function CONCATIF(Table As Range, SearchValue As Variant, Table2 As Range) 'moonexcel.com.ua Dim i As Integer For i = 1 To Table.Rows.Count If Table.Cells(i, 1) = SearchValue Then If Not IsEmpty(Table2.Cells(i, 1).Value) Then CONCATIF = CONCATIF & Table2.Cells(i, 1).Value & "; " End If End If Next i CONCATIF = Left(CONCATIF, Len(CONCATIF) - 2) End Function
Cierre Visual Basic Editor y regrese a Excel.
Ahora, en Function wizard en la categoría User defined puedes encontrar nuestra función CONCATIF y usarla. La sintaxis de esta función es la siguiente:
=CONCATIF (columna de valores buscados; valores buscados; columna de datos para combinar)
Tendremos el siguiente resultado:
Y finalmente, necesita bloquear los rangos A2:A10 y C2:C10 con un signo de dólar ($) para que los rangos no se muevan al final cuando copie el función.