¿Hay una manera de copiar varias filas basadas en una fórmula de condición si

Quiero copiar datos de la hoja 1 & 2 a la hoja 3 si la condición coincide.

He cansado después de las fórmulas

=IF('Sheet 1'!B$2='Sheet 2'!C2,'Sheet 2'!A2,"") 

Sólo funciona para celdas individuales en este caso 'Sheet 2'A2. cómo puedo utilizar esta condición para copiar múltiples valores usando mi condición de si " hacerlo dinámico.

o la consulta de poder es la única manera de hacerlo.

Pregunta hecha hace 3 años, 5 meses, 0 días - Por algorithmadeptc6cb


2 Respuestas:

  • Para copiar múltiples filas basadas en una condición en Excel, puedes utilizar la función FILTRAR junto con la función SI. Aquí te dejo un ejemplo de cómo podrías hacerlo:

    • En una nueva hoja (por ejemplo, en la hoja 3), puedes introducir esta fórmula en la celda A2 para copiar los datos de la hoja 2 a la hoja 3 si la condición coincide:
    excel
    =FILTRAR('Sheet 2'!A:A, 'Sheet 1'!B:B='Sheet 2'!C:C)
    

    Esta fórmula filtrará automáticamente los datos de la columna A de la hoja 2 en la hoja 3 si el valor en la columna B de la hoja 1 coincide con el valor en la columna C de la hoja 2.

    • Puedes arrastrar hacia abajo esta fórmula en la columna A de la hoja 3 para copiar múltiples filas que cumplan con la condición establecida.

    De esta manera, puedes copiar múltiples filas de forma dinámica en Excel utilizando la función FILTRAR. Espero que esta solución te ayude a resolver tu problema. Si tienes alguna otra pregunta, ¡estaré encantado de ayudarte!

    Respondida el Dec 18, 2020 a las 12:45 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Usando fórmulas

    Puedes utilizar la función SI para copiar múltiples valores basados en una fórmula de condición. Aquí tienes los pasos:

    • En la Hoja 3, selecciona el rango de celdas donde quieres copiar los datos.
    • Introduce la siguiente fórmula en la primera celda del rango:
    
    =SI(ESVERDADERO(INDICE('Hoja 1'!B$2:B$100, COINCIDIR('Hoja 2'!C2, 'Hoja 1'!A$2:A$100, 0))), INDICE('Hoja 2'!A$2:A$100, COINCIDIR('Hoja 2'!C2, 'Hoja 1'!A$2:A$100, 0)), "")
    
    • Esta fórmula comprobará si el valor de la celda C2 de la Hoja 2 coincide con algún valor en el rango A$2:A$100 de la Hoja 1. Si es así, copiará el valor correspondiente en el rango A$2:A$100 de la Hoja 2 en la celda actual de la Hoja 3.
    • Rellena la fórmula en el resto del rango.

    Usando VBA

    También puedes utilizar VBA para copiar múltiples valores basados en una fórmula de condición. Aquí tienes los pasos:

    • Abre la Hoja 3.
    • Ve a la pestaña "Desarrollador" y haz clic en "Visual Basic".
    • En el editor de VBA, inserta un nuevo módulo.
    • Pega el siguiente código en el módulo:
    
    Sub CopiarValoresCondicion()
        Dim rng1 As Range, rng2 As Range
        Dim i As Long, j As Long, k As Long
    
        'Definir los rangos de origen y destino
        Set rng1 = Sheets("Hoja 1").Range("B2:B100")
        Set rng2 = Sheets("Hoja 2").Range("A2:A100")
    
        'Iterar sobre cada celda en el rango de origen
        For i = 1 To rng1.Rows.Count
            'Buscar una coincidencia en el rango de destino
            j = Application.Match(rng1(i, 1), rng2, 0)
    
            'Si hay una coincidencia, copiar el valor
            If j > 0 Then
                'Calcular el índice de fila en la Hoja 3
                k = i + 1
    
                'Copiar el valor en la Hoja 3
                Sheets("Hoja 3").Cells(k, 1).Value = rng2(j, 1)
            End If
        Next i
    End Sub
    
    • Ejecuta el código haciendo clic en el botón "Ejecutar" o pulsando F5.

    Consulta de Power Query

    La consulta de Power Query también puede utilizarse para copiar múltiples valores basados en una fórmula de condición. Aquí tienes los pasos:

    • Abre la Hoja 3.
    • Ve a la pestaña "Datos" y haz clic en "Obtener datos" > "Desde otras fuentes" > "Consulta en blanco".
    • En el Editor de Power Query, selecciona la columna "C" de la tabla "Hoja 2".
    • Ve a la pestaña "Transformar" y haz clic en "Agregar columna" > "Columna personalizada".
    • En el cuadro de diálogo "Columna personalizada", introduce el siguiente nombre y fórmula:

    Nombre: Valor de coincidencia Fórmula: = if ([C] = [Hoja 1][B], [Hoja 1][A], "")

    • Haz clic en "Aceptar" para agregar la nueva columna.
    • Filtra la tabla por la nueva columna "Valor de coincidencia" para mostrar solo las filas que no estén vacías.
    • Selecciona las columnas "Valor de coincidencia" y "A" de la tabla "Hoja 1".
    9. Haz clic con el botón derecho y selecciona "Unir" > "Solo mantener filas coincidentes" en la tabla "Hoja 3".

    Respondida el Dec 18, 2020 a las 12:48 - por Gemini

    Votos positivos: 0 | Votos negativos: 0