¿Puedo actualizar la referencia de la hoja de Excel (como puede hacerlo con la celda) cuando pego el contenido de una hoja a otra?

1

Tengo un documento donde creo una nueva hoja que representa los días (tiene que ser así). Cada hoja tiene una referencia a la misma celda en la hoja que representa el día anterior. Así que la hoja "Martes" saca algunos valores de la hoja "Lunes" y así sucesivamente. La fórmula es:

            Description                              Amount

="Saldo from "&TEXT($'Day03'.C4,"DD.MM.YYYY.")        =$'Day03'.F33

y el resultado que veo es algo como Saldo from 1 June 2016, Amount $55.00

Si creo una nueva hoja y la nombro Day05 y pega el contenido de la hoja. Day04, ¿hay alguna manera de actualizar la fórmula que hace referencia? Day03 a Day04? En este momento, el contenido aún extrae datos de la hoja Day03.

En definitiva, cuando copio el contenido de la hoja. Day04, Quiero ver la actualización de la fórmula para:

            Description                              Amount

="Saldo from "&TEXT($'Day04'.C4,"DD.MM.YYYY.")        =$'Day04'.F33

En este momento, la referencia del nombre de la hoja no se actualiza y mi Day05 hoja todavía extrae datos de Day03

            Description                              Amount

="Saldo from "&TEXT($'Day03'.C4,"DD.MM.YYYY.")        =$'Day03'.F33 //<-- WRONG is 03 ref!
JoeM
fuente
Esto realmente no es posible?
JoeM
¿Qué versión de Excel usas? La respuesta depende de eso.
Máté Juhász
Estoy usando Excel 2010
JoeM
1
Ver AQUÍ cómo obtener el nombre de la hoja de la celda, luego use Derecha o Media para obtener el número y agregue 1, luego concatene nuevamente y use INDIRECTO ().
Scott Craner
Estás haciendo referencia a las celdas con algo como $ 'Day03'.C4 pero solo sabía algo como Day03! C4. ¿Es tu localidad la que te hace usar el signo de dólar ($) y el punto (.)?
Eduardo Poço

Respuestas:

2

El problema es crear una nueva hoja, copiar el contenido de una hoja existente y cambiar las referencias a celdas a una segunda hoja existente. Como Satya mishra Dice, eso podría hacerse manualmente cambiando. 'Day03'! a 'Day04'! después de copiar a una nueva hoja, Day05.

Para realizar el cambio automáticamente cuando copia de la hoja anterior a una nueva, replanteamos el problema: cree una hoja nueva y copie el contenido de la hoja anterior. Utilice el nombre de la nueva hoja para hacer referencias a la hoja nombrada anterior.

Aquí hay una fórmula en la hoja actual que obtiene los contenidos de la celda. F33 De la hoja nombrada anterior. Por ejemplo, si la hoja actual es Day05, la fórmula obtiene F33 de la hoja Day04.

=INDIRECT(CONCATENATE("'Day",TEXT(MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+4,255)-1,"0#"),"'!","F33"))

Como funciona la formula

La formula utiliza INDIRECT para obtener un valor de celda de la hoja anterior. Si la hoja actual es Day05 y queremos celular F33, INDIRECT necesita una cadena que hace referencia a la celda F33 en hoja Day04. La cuerda que necesitamos es 'Day04'!F33.

  1. Obtener el nombre de la hoja para la hoja actual.
Day05         =MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,255)
  1. Modifique la fórmula para obtener el número al final del nombre de la hoja cambiando +1 a +4. Esto omite los 3 caracteres "Día".
05            =MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+4,255)
  1. Resta 1 para obtener la porción numérica de la hoja anterior.
4            =MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+4,255)-1
  1. Utilizar TEXT para rellenar el número con un cero inicial.
04           =TEXT(MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+4,255)-1,"0#")
  1. Utilizar CONCATENATE Para hacer el nuevo nombre de la hoja con una referencia a la celda. F33.
'Day04'!F33  =CONCATENATE("'Day",TEXT(MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+4,255)-1,"0#"),"'!","F33")

Usando la formula

Donde quiera que desee un valor de celda de la hoja anterior, use la fórmula en lugar de la referencia de celda y cambie la última cadena en la fórmula a la referencia de celda. Por ejemplo, para usar celular. C4 para mostrar la descripción (aviso C4 en la fórmula):

="Saldo from "&TEXT(INDIRECT(CONCATENATE("'Day",TEXT(MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+4,255)-1,"0#"),"'!","C4")),"DD.MM.YYYY.")

El resultado es Saldo from 01.06.2016.

Condiciones y advertencias.

  • Cada nombre de hoja debe terminar con dos números, por ejemplo, Day02, Day03, etc.
  • La fórmula no funcionará hasta que la nueva hoja tenga su nombre correcto. Un nombre de hoja incorrecto causa #VALUE! errores
creidhne
fuente
0

No he encontrado ninguna manera de hacer esto automáticamente. Pero un "Buscar y reemplazar" (Ctrl + H) parece funcionar.

Satya Mishra
fuente
0

Encontré la solución gracias al comentario de Scott Craner. Te advierto que va a ser una fórmula larga.

En cualquier lugar que tenga el "Día XX" con el número XX, puede cambiarlo de XX a

&MID(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),FIND("y";MID(CE("filename",A1),FIND("]";CEL("filename";A1))+1,255))+1,2)-1

Esto encuentra el nombre de archivo y busca la y desde el día y extrae el número del nombre de archivo y le resta 1. Puedo explicarlo más si quieres, solo agrega un comentario.

Michthan
fuente
0

Excel adapta las referencias a una hoja cuando cambiamos el nombre de esta hoja. Todas las referencias son renombradas automáticamente. Intentemos resolver el problema con esta característica: en lugar de cambiar el nombre de las referencias, lo haremos renombrar la hoja .

  1. Abre tu cuaderno con las hojas de los días.
  2. Cree la hoja con los datos para el nuevo día (por ejemplo, "Día 05") como estaba haciendo anteriormente. Al final, copie las fórmulas de la hoja de Day04, sin importar que aún se refieran a Day03 después de la copia, y guárdelas. ¡No cierres el cuaderno todavía!
  3. Abra otro libro, que puede estar vacío, para mantener una referencia temporal, y mueva la hoja de Day05 (para hacer esto, haga clic derecho en Day05, elija 'Mover o Copiar ...' y seleccione el otro libro como destino).
  4. Eliminar hoja "Día04" y cambie el nombre de la hoja "Día 03" a "Día 04" . ¡Esta es la parte difícil!

Ahora puede ver que la hoja "Día05", en el nuevo libro de trabajo, tendrá sus referencias configuradas en Día04 (del primer libro de trabajo), en lugar de Día03, debido al cambio de nombre. A continuación, volvamos a mover esta hoja al libro de trabajo original.

  1. Cierre el libro de trabajo original, descartando los cambios realizados después del último guardado.
  2. Vuelva a abrir el libro de trabajo y mueva hacia atrás la hoja Día 05 que está en el libro de trabajo temporal. Las referencias siguen siendo Day04 (del libro de trabajo actual), porque descartamos los cambios en lugar de cambiar el nombre de la hoja.

Voilà! Este es un truco para hacer que Excel cambie el nombre de las referencias para nosotros.

Puede que no parezca fácil de hacer a primera vista, pero creo que es más fácil hacerlo que usar fórmulas o VBA, porque puede controlar los pasos sin conocimientos de programación. Además, es más fácil que renombrar cada referencia.

¡Espero eso ayude!

EDITAR 1

Por supuesto, puede grabar una macro con esta actividad e incluso adaptarla para poder llamarla más rápido.

Eduardo Poço
fuente