Descubrí que las fórmulas y rangos de formato condicional se ajustarán automáticamente cuando copie, elimine o mueva datos en una hoja de cálculo. Si bien esta es una buena idea, tiende a romperme las cosas de maneras bastante extrañas.
Para evitar esto, intenté escribir reglas que se aplicaran a toda la hoja de cálculo y eliminé los encabezados de columna para resaltar los datos que quería verificar.
Ejemplo: =AND(A$1="Check This Column For Blanks),ISBLANK(A1))
aplicado a=$1:$1048576
Sin embargo, incluso con la regla aplicada explícitamente a toda la hoja, todavía se ajustaba automáticamente (y se rompía de manera extraña al hacerlo) mientras trabajaba en la hoja.
¿Cómo puedo evitar esto?
Respuestas:
Cuando necesito un rango que no debería cambiar bajo ninguna circunstancia, como mover, insertar y eliminar celdas, utilicé un rango con nombre y la
INDIRECT
función.Por ejemplo, si quiero que un rango siempre se aplique a las celdas
A1:A50
, definí un rango con nombre a través del Administrador de nombres:En el Administrador de nombres, agregue un nuevo rango (haga clic en Nuevo) y, en el campo Se refiere a:, use la función INDIRECTA para especificar el rango de celdas que desea, por ejemplo,
=INDIRECT("A1:A50")
o=INDIRECT("Sheet!A1:A50")
. Debido a que el rango es técnicamente solo un argumento textual, ninguna cantidad de celdas reorganizadas hará que Excel lo actualice.Además, esto funciona al menos en Excel 2010 y Excel 2013. Aunque mi captura de pantalla es de 2013, he usado esta técnica exacta en 2010 en el pasado.
Advertencias
Ten en cuenta que esta invariancia también puede hacerte tropezar. Por ejemplo, si cambia el nombre de la hoja, el rango con nombre se romperá.
He notado un impacto menor en el rendimiento al usar esta estrategia en un número significativo de celdas. Un modelo que uso en el trabajo usa esta técnica con rangos con nombre que abarcan varios miles de rangos de celdas dispares, y Excel se siente un poco lento cuando actualizo celdas en esos rangos. Esta puede ser mi imaginación, o puede ser el hecho de que Excel está haciendo llamadas de función adicionales a INDIRECTO.
fuente
INDIRECT
función por sí solo?Descubrí que las reglas son muy fáciles de romper, pero aquí hay algo que puedes probar que no parece romper ninguna regla.
Puede cambiar el texto dentro de las celdas. Si necesita agregar una fila, agregue sus datos al final de su tabla y vuelva a ordenarlos. Si necesita eliminar una fila, solo elimine el texto / números, luego vuelva a ordenar la tabla.
Esto funciona para mí cuando tengo un formato condicional que se aplica a las columnas, y generalmente configuro el formato para toda la columna, por ejemplo. $ F: $ F. Todavía debería funcionar si está formateando para un rango parcial, solo asegúrese de que cuando haya terminado de agregar / eliminar y recurrir a que todos los datos que desea formatear aún estén dentro de sus parámetros de rango originales.
También es una gran frustración para mí.
Espero que esto ayude.
fuente
No soy TAN seguro y enfrento el mismo problema con frecuencia.
Yo diría que el campo 'Aplicar a' en el panel de Formato condicional (CF) SIEMPRE funcionará dinámicamente. Por lo tanto, SIEMPRE convertirá cualquier referencia al formato
=$A$1:$A$50
.Es un dolor.
fuente
Descubrí que usar la
INDIRECT
función y laROW
función en la regla de Formato condicional elimina el problema de que Excel cree nuevas reglas y cambie el rango.Por ejemplo, quería agregar una línea entre filas en mi hoja de cálculo de registro de la chequera cuando el mes cambiaba de una fila a la siguiente. Entonces, mi fórmula en la regla CF es:
donde la columna C en mi hoja de cálculo contiene la fecha. No tuve que hacer nada especial para el rango (no tuve que definir un nombre de rango, etc.).
Entonces, en el ejemplo del póster original, en lugar de "A1" o "A $ 1" en la regla CF, use:
fuente
He experimentado un problema muy similar. He hecho algunas macros para agregar filas y copiar fórmulas, y luego ajustar columnas y tamaños de fila para formatear la apariencia de la hoja. Descubrí que este problema ocurre en una de dos ocasiones.
1) Cuando algo de DENTRO del "aplica a" se corta / pega fuera de este rango.
2) Cuando hay celdas combinadas dentro de "aplica a", y cualquiera de las filas o columnas se ajusta.
Aparece durante el problema de celda combinada, que Excel tiene que desmantelar todo, recalcular su aplicación condicional, ajustar todas las celdas (agregar o eliminar filas o lo que no) y luego volver a fusionarlas. Es invisible para nosotros, pero así parece ser cómo se aplica.
Pensamos que podría ayudarnos a llegar a la solución en esto.
-T
fuente
Tengo una solución simple para esto.
Simplemente muévase a una celda que esté dentro del rango (la que no está rota del Rango), haga clic en Copiar formato y luego pegue en toda la columna. Nuevamente mostrará Donde se ha roto, solo necesita hacer un pintor de formato a la celda que ha roto el rango. Ahora, esto también puede parecer un poco largo, solo puede construir una macro simple para esto.
fuente
En la fórmula de Formato condicional, use
R1C1
notación conINDIRECT
función:Ejemplo 1:
If same row column A = 1
...Ejemplo 2:
If same row column A = 2 AND next row column A = 3
...fuente
Si el caso de uso es generar una hoja de cálculo de informe, esto debería funcionar bien:
Puede omitir la excesiva utilidad de Excel con un par de pasos de configuración únicos, si también está dispuesto a realizar una actualización simple de los datos finales después de hacer toda la entrada de datos.
Asumiendo que sus datos están organizados normalmente (en filas):
Input
. No le aplique ningún formato condicional. Siéntase libre de cambiar los valores al contenido de su corazón (por ejemplo, eliminar / insertar / copiar / pegar)Output
). Copie manualmente el formato global, como el ancho de columna y el formato del encabezado (no el contenido de los encabezados, solo el formato).$A$1
en la siguiente fórmula con la ubicación del inicio de su fila de encabezado, luego copie en todas las columnas y filas que desea generar:=IF(LEN(OFFSET(Input!$A$1,ROW()-1,COLUMN()-1))>0,OFFSET(Input!$A$1,ROW()-1,COLUMN()-1),"")
(laIF(LEN(...)>0,...,"")
declaración es necesaria porque Excel también determina de manera útil los tipos de datos para usted y0
, de lo contrario, los usa para celdas vacías, y los-1
términos provienen de la semántica offset versus ordinal)Output
hoja.Esto copia su
Input
hoja de datos a laOutput
hoja sin ninguna referencia de celda que Excel automáticamente desmenuzaría para que pueda definir con confianza su formato condicional en laOutput
hoja.Solo tiene que extender manualmente el rango al que se aplica la fórmula en la
Output
hoja a medida queInput
cambia el tamaño de sus datos.Le sugiero que evite fusionar las celdas.
PD: esta pregunta se ha formulado en numerosas ocasiones (también se aplica en las Hojas de cálculo de Google, que es un clon de Excel), por lo que puede encontrar una mejor solución para su caso de uso al consultarlas:
fuente
Si pega sin formato (
Paste > Paste Special > Unicode Text
o similar), el formato especial no se copiará y, como tal, el rango "Se aplica a" no debería cambiar.Puede eliminar filas / columnas, pero si las inserta, el rango "Se aplica a" se dividirá.
Extiende el área seleccionando la última fila / columna y "copiar-arrastrar" en el cuadrado pequeño en la parte inferior izquierda del "cursor". De esta manera, el rango "Aplicar a" debe permanecer intacto. (Tenga en cuenta que esto no extenderá ninguna fórmula en filas o columnas como lo hace insertar).
Sin embargo, es un dolor total recordar pegar sin formato, etc. Normalmente no lo hago.
A veces también defino un nombre para el área que quiero formatear. No se usará en la regla, pero puede limpiar la regla eliminando todas las reglas excepto una y usar el nombre del área en la sección "Se aplica a".
Lo probé en una Mac con Excel 16.3 (creo que Office 2016 ... hmm).
fuente