![Edite las celdas a las que se hace referencia en la hoja de trabajo maestra desde la hoja de trabajo derivada en Excel](https://rvso.com/image/1313340/Edite%20las%20celdas%20a%20las%20que%20se%20hace%20referencia%20en%20la%20hoja%20de%20trabajo%20maestra%20desde%20la%20hoja%20de%20trabajo%20derivada%20en%20Excel.png)
Estoy usando Excel 2010 y tengo dos hojas de trabajo. La hoja A tiene una columna de identificador único y otras columnas con valores. La hoja B tiene una lista de identificadores y otros campos para los cuales estoy usando una VLOOKUP
fórmula para completar a partir de los valores de la hoja A.
Idealmente, me gustaría editar los valores existentes en la Hoja B y actualizarlos en la Hoja A, pero esto no parece posible; cuando lo intento, simplemente sobrescribo mi =VLOOKUP
fórmula con datos sin procesar. ¿Estoy en lo cierto en que no hay forma de hacer esto?
Alternativamente, ¿existe algún truco para hacer clic o saltar automáticamente de alguna manera desde la celda que contiene la VLOOKUP
fórmula en la Hoja B a la celda original en la Hoja A?
Mi objetivo general es mantener todos los valores sin procesar en la Hoja A y solo hacer referencia a ellos desde la Hoja B sin tener que buscar manualmente en la Hoja A para actualizar los datos.
Respuesta1
Para implementar su solicitud alternativa, puede utilizar la HYPERLINK
función junto conVLOOKUP
Suponiendo que Sheet A
contiene ID en la columna A y valores en la columna B, reemplácelo VLOOKUP
con
=HYPERLINK("#'Sheet A'!B"&MATCH(A2,'Sheet A'!$A:$A,0),VLOOKUP(A2,'Sheet A'!$A:$B,2,0))
Esto no solo mostrará el VLOOKUP
resultado como antes, sino que también creará un hipervínculo al valor encontrado en la Hoja A cuando se haga clic en la celda.
Respuesta2
El principal problema al que se enfrenta ahora son las referencias circulares.
BUSCARV no es una A = B
relación, sino más bien una if A then B
relación (donde A y B son matrices de valores como en su caso). En otras palabras, es unidireccional y A no depende de B. Por lo que veo, no creo que Excel tenga una forma directa de manejar una referencia circular simplemente usando la interfaz de usuario, ya que la fórmula no se puede almacenar. en el backend (a menos que uses una macro).
Una forma es tener valores relativos tanto en A como en B y una tercera hoja (o muchas columnas adicionales) para hacer algunas celdas condicionales, por ejemplo, la hoja A tiene un valor relativo (que podría ser un nuevo valor actualizado en B o un valor original en C). ), la hoja C contiene valores originales y la hoja B contiene celdas para reflejar los valores Y actualizar los valores.
En la Hoja B, cree una nueva columna para cada columna a la que se hace referencia. Esta será la columna de valores de actualización. En la Hoja C, almacene sus valores originales. En la Hoja A, use un condicional que diga "si el campo de valores de actualización en la Hoja B tiene un valor, úselo; de lo contrario, consulte la Hoja C". La columna de valores reflejados de la hoja B seguirá haciendo referencia a la hoja A, por lo que cambiará dinámicamente si la columna de actualización tiene nuevos valores. Tenga en cuenta que esto no resuelve realmente el problema de la referencia circular, sino que simplemente lo soluciona.
Sin embargo, si necesita que la Hoja A tenga valores fijos y no valores relativos, tendrá que copiar o paste as value
usar algo como:
ActiveSheet.Range("A1:D1000").Value = ActiveSheet.Range("A1:D1000").Value
en VB para convertir valores relativos (con fórmulas) a valores fijos.