Come posso evitare che le formule e gli intervalli di formattazione condizionale cambino automaticamente?


24

Ho scoperto che le formule e gli intervalli di formattazione condizionale si adatteranno automaticamente quando copi, elimini o sposti i dati in un foglio di calcolo. Mentre questa è una bella idea, tende a rompere le cose per me in modi piuttosto strani.

Per evitarlo, ho provato a scrivere regole che si applicavano all'intero foglio di calcolo e sono state cancellate le intestazioni delle colonne per evidenziare i dati che volevo controllare.

Esempio: =AND(A$1="Check This Column For Blanks),ISBLANK(A1))applicato a=$1:$1048576

Tuttavia, anche con la regola esplicitamente applicata all'intero foglio, si stava ancora adeguando automaticamente (e rompendo in modi strani facendo così) mentre lavoravo nel foglio.

Come posso evitarlo?


Forse non puoi semplicemente utilizzare l'intero foglio di calcolo ... Puoi fare un esempio più concreto di cosa stai facendo?
Doktoro Reichard,

Potresti forse avere uno screenshot e indicare quali aree si rompono?
Jerry,

@JohnBensin Sembra proprio quello che stavo cercando. Proverò a ricordare quello la prossima volta.
Iszi,

@Iszi L'ho aggiunto come risposta. Sono sicuro che sai come aggiungere intervalli denominati, ma includo i dettagli nella risposta per i futuri visitatori (e perché quando ho imparato a usare Excel per la prima volta, non riuscivo mai a ricordare).
John Bensin,

Un articolo su cosa non va esattamente: l' incubo della formattazione condizionale di Excel 2010 . Hanno sicuramente peggiorato le cose mentre cercavano di migliorarlo un po '...
RomanSt

Risposte:


7

Quando ho bisogno di un intervallo che non dovrebbe cambiare in nessuna circostanza, incluso lo spostamento, l'inserimento e l'eliminazione di celle, ho usato un intervallo denominato e la INDIRECTfunzione.

Ad esempio, se voglio che un intervallo si applichi sempre alle celle A1:A50, ho definito un intervallo denominato tramite il Name Manager:

aggiungi intervallo denominato

Nel Nome Manager, aggiungere una nuova gamma (fare clic su Nuovo), in Riferire A: campo, utilizzare la funzione indiretto per specificare l'intervallo di celle che si desidera, ad esempio =INDIRECT("A1:A50")o =INDIRECT("Sheet!A1:A50"). Poiché l'intervallo è tecnicamente solo un argomento testuale, nessuna quantità di riordinamento delle celle farà sì che Excel lo aggiorni.

Inoltre, questo funziona almeno in Excel 2010 ed Excel 2013. Anche se il mio screenshot è del 2013, in passato ho usato questa tecnica esatta nel 2010.

Avvertenze

  1. Tieni presente che questa invarianza può anche farti inciampare. Ad esempio, se si modifica il nome del foglio, l'intervallo denominato verrà interrotto.

  2. Ho notato un lieve calo delle prestazioni quando si utilizza questa strategia su un numero significativo di celle. Un modello che utilizzo al lavoro utilizza questa tecnica con intervalli denominati che si estendono su diverse migliaia di intervalli di celle disparati ed Excel si sente un po 'lento quando aggiorno le celle in quegli intervalli. Questa potrebbe essere la mia immaginazione, o potrebbe essere il fatto che Excel stia effettuando ulteriori chiamate di funzione a INDIRECT.


Sebbene l'intervallo denominato fornisca un comodo metodo abbreviato di riferimento alle celle target, non potresti semplicemente utilizzare la INDIRECTfunzione da solo?
Iszi,

@Iszi Sì, lo credo. Tuttavia, come dici tu, gli intervalli con nome sono convenienti e spesso mi ritrovo a fare riferimento allo stesso intervallo di celle in più punti in una cartella di lavoro. Cerco di mantenere gli intervalli il più piccoli possibile, per motivi di prestazioni, e di cambiarli solo quando necessario, quindi l'uso di un intervallo denominato significa che devo solo cambiarlo in un posto.
John Bensin,

@Iszi Hai finito per usare questo metodo? Se riscontri insidie ​​o inconvenienti che non ho menzionato, fammi sapere o modificali nella risposta. Uso questa strategia in un numero sufficiente di posti in cui non voglio che qualcosa torni a perseguitarti o io lungo la strada.
John Bensin,

Non sono ancora riuscito a implementarlo, ma probabilmente lo farò la prossima volta che incontrerò questo problema. Ti farò sapere se ci sono problemi.
Iszi,

9
Ho provato a utilizzare l'intervallo denominato nella colonna "Applies to" del Gestore regole di formattazione condizionale, ma l'intervallo denominato viene espanso quando premo "OK" o "Applica". Sto sbagliando?
Mihai Alexandru Bîrsan,

2

Ho scoperto che le regole sono molto facili da infrangere, ma ecco qualcosa che puoi provare che non sembra infrangere alcuna regola.

Puoi modificare il testo all'interno delle celle. Se è necessario aggiungere una riga, aggiungere i dati alla fine della tabella e riordinarli. Se è necessario eliminare una riga, rimuovere solo il testo / i numeri, quindi riordinare la tabella.

Questo funziona per me quando ho una formattazione condizionale applicata alle colonne e di solito imposto la formattazione per l'intera colonna, ad es. $ F: $ F. Dovrebbe funzionare ancora se stai formattando per un intervallo parziale, assicurati solo che quando hai finito di aggiungere / rimuovere e ricorrere che tutti i dati che vuoi formattare siano ancora all'interno dei parametri dell'intervallo originale.

È una grande frustrazione anche per me.

Spero che aiuti.


1

Non sono SO sicuro e io faccia lo stesso problema frequente.

Direi che il campo "Applica a" nel pannello Formattazione condizionale (CF) funzionerà SEMPRE in modo dinamico. Quindi, convertirà SEMPRE qualsiasi riferimento al formato =$A$1:$A$50.

È un dolore


Non funziona, anche quando uso dichiarazioni esplicite o variabili ($ o no $).
Paul,

1

Ho scoperto che l'utilizzo della INDIRECTfunzione e della ROWfunzione nella regola di formattazione condizionale elimina il problema della creazione di nuove regole e della modifica dell'intervallo da parte di Excel.

Ad esempio, volevo aggiungere una riga tra le righe nel mio foglio di calcolo del registro del libretto degli assegni quando il mese cambiava da una riga alla successiva. Quindi, la mia formula nella regola CF è:

=MONTH(INDIRECT("C"&ROW()))<>MONTH(INDIRECT("C"&ROW()-1))

dove la colonna C nel mio foglio di calcolo contiene la data. Non ho dovuto fare nulla di speciale per l'intervallo (non ho dovuto definire un nome di intervallo, ecc.).

Quindi nell'esempio del poster originale, anziché "A1" o "A $ 1" nella regola CF, utilizzare:

INDIRECT("A"&ROW())

0

Ho riscontrato un problema molto simile. Ho creato alcune macro per aggiungere righe e copiare formule, quindi regolare colonne e dimensioni delle righe per formattare l'aspetto del foglio. Ho scoperto che questo problema si verifica in una delle due occasioni.

1) Quando qualcosa da INSIDE "applica a" viene tagliato / incollato al di fuori di questo intervallo.

2) Quando ci sono celle unite all'interno di "si applica a", e qualsiasi riga o colonna viene regolata.

Appare durante il problema delle celle unite, che Excel deve separare tutto, ricalcolare la sua applicazione condizionale, regolare tutte le celle (aggiungere o eliminare righe o cosa no) e poi rimetterle a posto. È invisibile per noi, ma sembra essere così che viene applicato.

Pensato che potrebbe aiutarci a raggiungere la soluzione su questo.

-T


0

Ho una soluzione semplice per questo.

Basta spostarsi in una cella che si trova nell'intervallo (quello non rotto dell'intervallo), fare clic su Copia formato e quindi incollare sull'intera colonna. Ancora una volta mostrerà Dove si è rotto, devi solo fare un Painter Format per la cella che ha rotto il range. Ora, anche questo può sembrare un po 'lungo, puoi semplicemente creare una semplice macro per questo.


0

Nella formula di formattazione condizionale, utilizzare la R1C1notazione con la INDIRECTfunzione:
Esempio 1:

If same row column A = 1 ...

=IF($A1=1,1,0) becomes 
=IF(INDIRECT("RC1",FALSE)=1,1,0)

Esempio 2:
If same row column A = 2 AND next row column A = 3...

=IF(AND(($A1=2),($A2=3)),1,0) becomes
=IF(AND((INDIRECT("RC1",FALSE)=2),(INDIRECT("R[1]C1",FALSE)=3)),1,0)

0

Se il caso d'uso è generare un foglio di calcolo del rapporto, questo dovrebbe funzionare bene:


È possibile ignorare l' utilità eccessiva di Excel con un paio di passaggi di installazione una tantum, se si è anche disposti a eseguire manualmente un semplice aggiornamento dei dati finali dopo aver effettuato l'inserimento di tutti i dati.

Supponendo che i tuoi dati siano disposti normalmente (in righe):

  1. Inserisci tutti i tuoi dati in un foglio. Per questo tutorial darò un nome al foglio Input. Non applicare alcuna formattazione condizionale ad esso. Sentiti libero di spostare i valori in base al contenuto del tuo cuore (ad es. Cancella / inserisci / copia / incolla)
  2. Crea un altro foglio vuoto e chiamalo come preferisci (es Output.). Copia manualmente sulla tua formattazione globale come la larghezza delle colonne e la formattazione delle intestazioni (non il contenuto delle intestazioni, solo la formattazione).
  3. Sostituisci $A$1nella seguente formula con la posizione dell'inizio della riga di intestazione, quindi copia su tutte le colonne e le righe che desideri produrre: =IF(LEN(OFFSET(Input!$A$1,ROW()-1,COLUMN()-1))>0,OFFSET(Input!$A$1,ROW()-1,COLUMN()-1),"") (l' IF(LEN(...)>0,...,"")istruzione è necessaria perché Excel determina anche in modo utile i tipi di dati per te e li utilizza 0per le celle vuote in caso contrario, e i -1termini provengono dalla compensazione rispetto alla semantica ordinale)
  4. Applica la formattazione condizionale al Outputfoglio.

In questo modo il Inputfoglio dati viene copiato sul Outputfoglio senza riferimenti di cella che Excel macellerebbe automaticamente in modo da poter definire con sicurezza la formattazione condizionale sul Outputfoglio.

Devi solo estendere manualmente l'intervallo a cui viene applicata la formula nel Outputfoglio quando Inputcambiano le dimensioni dei tuoi dati.

Ti consiglio di evitare di unire le celle.


PS Questa domanda è stata posta numerose volte (si applica anche a Fogli Google, che è un clone di Excel), quindi potresti trovare una soluzione migliore per il tuo caso d'uso esaminandoli:

  1. Frammentazione della formattazione condizionale di Excel
  2. (questo) Come posso evitare che le formule e gli intervalli di formattazione condizionale cambino automaticamente?
  3. Conserva la formattazione condizionale su cut-paste
  4. Excel: come applicare in modo permanente la formattazione condizionale all'intero foglio di calcolo?
  5. Perché Excel sta macellando la mia formattazione condizionale?

0

Se si incolla senza formato ( Paste > Paste Special > Unicode Texto simile), la formattazione speciale non verrà copiata e pertanto la gamma "Applies to" non dovrebbe cambiare.

È possibile eliminare righe / colonne, ma se le si inserisce la gamma "Applies To" verrà suddivisa.

Si estende l'area selezionando l'ultima riga / colonna e "copia-trascina" sul quadratino in basso a sinistra del "cursore". In questo modo la gamma "Applica a" dovrebbe rimanere intatta. (Si noti che ciò non estenderà alcuna formula su righe o colonne come l'inserto.)

Tuttavia, è un dolore totale ricordare di incollare senza formattazione, ecc. Di solito non lo faccio.

A volte definisco anche un nome per l'area che voglio formattare. Non verrà utilizzato nella regola, ma è possibile ripulire la regola rimuovendo tutte le regole tranne una e utilizzare il nome dell'area nella sezione "Applies to".

Ho provato su un Mac usando Excel 16.3 (penso a Office 2016 ... hmm).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.