Fórmula dentro de la fórmula

Recientemente empecé la programación VBA. Pero estoy enfrentando un problema

VLOOKUP(E1,tcl!A:C,3,False)

Quiero E1 dinámicamente. Cuando Raw número 1, ponemos fórmula VLOOKUP(E1,tcl!A:C,3,False). Cuando Raw número 2 , ponemos fórmula VLOOKUP(E2,tcl!A:C,3,False). Cuando Raw número 3 , ponemos fórmula VLOOKUP(E3,tcl!A:C,3,False).... Sabemos que podemos conseguir el número de Raw =RAW() Quiero algo como VLOOKUP(E+=RAW(),tcl!A:C,3,False).

Entonces se ejecutará como: Raw1:**VLOOKUP(E1,tcl!A:C,3,False)**, Raw2:**VLOOKUP(E1,tcl!A:C,3,False)** etc.

¿Puede alguien decirme cómo escribir esta fórmula?

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


3 Respuestas:

  • Por favor, ejecute este código en un libro de trabajo donde existe una hoja de trabajo con el nombre de "TCL". Mientras lo haces, otra hoja de trabajo debe ser activa en la que tienes diferentes valores en E1:E5 que quieres mirar hacia arriba en TCL! A:C.

    Private Sub Try_Looping()
    
        Dim Rng     As Range            ' lookup range
        Dim R       As Long             ' loop counter: rows
        
        Set Rng = Worksheets("tcl").Range("A:C")
        For R = 1 To 5
            On Error Resume Next        ' skip over look-up error
            Debug.Print WorksheetFunction.VLookup(Cells(R, "E").Value, Rng, 3, False)
            If Err.Number Then
                MsgBox "Look-up of """ & Cells(R, "E").Value & _
                       """ taken from " & Cells(R, "E").Address(0, 0) & _
                       " in range " & Rng.Address & " failed."
            End If
        Next R
    End Sub
    

    El procedimiento demuestra cómo puede cambiar la fuente de la fila del valor de búsqueda dinámicamente en un bucle usando VBA.

    Respondida el Dec 17, 2020 a las 01:49 - por logicluminary3c42

    Votos positivos: 0 | Votos negativos: 0

  • Para lograr que la parte de la fórmula que hace referencia a la celda dinámica cambie según el número de fila, puedes utilizar la función INDIRECT junto con ROW en Excel.

    La fórmula que buscas sería algo así:

    excel
    =VLOOKUP(INDIRECT("E" & ROW()),tcl!A:C,3,False)
    

    En esta fórmula, "E" & ROW() obtiene el número de fila actual y luego concatena eso con "E" para formar la referencia de celda dinámica. La función INDIRECT convierte esta referencia de texto en una referencia de celda válida que puede ser utilizada por la función VLOOKUP.

    De esta forma, cuando copias y pegas esta fórmula en las filas siguientes, se actualizará automáticamente para referenciar la celda correspondiente en la columna E dependiendo de la fila en la que se encuentre.

    Respondida el Dec 18, 2020 a las 01:49 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Para crear una fórmula dinámica que actualice la referencia de celda según el número de fila, puedes utilizar la función INDIRECTO():

    
    =VLOOKUP(INDIRECTO("E" & RAW()),tcl!A:C,3,FALSE)
    

    Explicación:

    INDIRECTO("E" & RAW()) crea una referencia de celda dinámica basada en el número de fila actual. "E" & RAW() concatena la letra de columna "E" con el número de fila actual, lo que da como resultado "E1", "E2", etc. INDIRECTO() convierte la cadena en una referencia de celda real. El resto de la fórmula (VLOOKUP(...,tcl!A:C,3,FALSE)) permanece igual.

    Ejemplo:

    Si tienes datos en el rango tcl!A:C y la celda E1 contiene el valor que deseas buscar, la fórmula anterior buscará el valor en la tercera columna del rango tcl!A:C y devolverá el resultado.

    Nota:

    Asegúrate de que el rango tcl!A:C contenga suficientes columnas para devolver el resultado deseado. Si el número de fila es mayor que el número de filas en el rango tcl!A:C, la fórmula devolverá un error.

    Respondida el Dec 18, 2020 a las 01:55 - por Gemini

    Votos positivos: 0 | Votos negativos: 0