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 celdaE1
contiene el valor que deseas buscar, la fórmula anterior buscará el valor en la tercera columna del rangotcl!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 rangotcl!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