Formatta in modo condizionale una cella se contiene una formula


18

È possibile formattare in modo condizionale una cella se la cella contiene una formula (per avvisare me e altri utenti durante l'aggiornamento della cella)?


Se vuoi solo vedere rapidamente quali celle contengono formule puoi digitare Ctrl-`(che è un segno di spunta, sullo stesso tasto di ~ sulle tastiere inglesi) per visualizzare le formule. Premere di nuovo il tasto per attivare / disattivare.
yoyo

Risposte:


9

È possibile utilizzare la formattazione condizionale per fare ciò utilizzando XLM e Range Names

Ho un articolo più lungo sull'utilizzo di XLM con nomi di intervallo e formattazione condizionale per formattare automaticamente i fogli di calcolo in base al contenuto della cella

  1. Definire un nome intervallo IsFormula = GET.CELL (48, INDIRECT ("rc", FALSE))
  2. Applicare un test di celle di formattazione condizionale per la formula, ovvero = IsFormula con un riempimento a colori

Spiacenti, non ho ancora testato la tua risposta fino ad ora. Questo trucco è semplice e bello. Accettato! Grazie. (A proposito, il collegamento è interrotto.)
Wilson,

Testato e funziona! Ho dovuto trovare la definizione corretta per la versione italiana di Excel 2007. Se si dispone di Excel italiano è necessario utilizzare = INFO.CELLA (48; INDIRETTO ("rc"; FALSO)) (notare anche il punto e virgola al posto delle virgole)
Kar.ma,

La parte negativa è che è necessario salvarlo come file macro (ad esempio .xlsm) e quando si apre il file la colorazione non viene visualizzata fino a quando non si abilitano le macro.
Kar.ma,

Si era in grado di utilizzare xlmsenza alcun avviso macro, MSFT ha cambiato l'approccio di sicurezza.
Brettdj,

10

Basandomi sulla risposta di Brettdj, perché ho trovato l'articolo collegato abbastanza difficile da seguire:

  1. Crea una nuova regola di formattazione condizionale e seleziona Usa una formula per determinare quali celle formattare
  2. Inserisci la seguente formula: =ISFORMULA(INDIRECT("rc",FALSE))
  3. Se si desidera applicare la regola all'intero foglio di lavoro, $1:$1048576come intervallo a cui applicare. Altrimenti, puoi inserire qualsiasi intervallo.

La formula INDIRECT("rc",FALSE)restituisce il riferimento della cella corrente. Se mai lo uso in un foglio, creo un Nome definito chiamato qualcosa del genere ThisCelle lo uso nella formula, nel caso in cui dovessi tornare anni dopo e pensare "che diavolo è questo?".


Questa è la risposta corretta per Excel 2013 e
versioni

1
Invece di usare INDIRECT("rc",FALSE), usa il riferimento relativo con la cella in alto a sinistra nell'intervallo "Applica a" nella formattazione condizionale. Ad esempio, se l'intervallo "Si applica a" è =$A$3:$F$300, quindi utilizzare =ISFORMULA(A3). Questo perché la formattazione condizionale supporta riferimenti relativi, vedi questo
Micah Lindström

4

Puoi provare questi:

VBA

Creare una funzione personalizzata con il seguente codice:

Function IsFormula(ByVal Ref As Range) As Variant
    If Ref.Cells.Count > 1 Then
        IsFormula = CVErr(xlErrNA)
    Else
        IsFormula = Ref.HasFormula
    End If
End Function

Esempio:

Per verificare se alcune celle nella colonna A hanno delle formule:

  1. Evidenzia colonna A
  2. Vai a Formattazione condizionale > Nuova regola > Usa una formula per determinare quali celle formattare
  3. Usa ff. formula:=IsFormula(A1)

Non-VBA

  1. Premere F5o Ctrl+G
  2. Fai clic su Speciale .
  3. Scegli le formule e fai clic su OK . Ciò evidenzia tutte le celle nel foglio di lavoro che contiene formule.
  4. Imposta il formato che desideri utilizzare.
    Oppure
    vai su Stili di cella (nella scheda Home) e scegli uno stile che desideri associare a celle contenenti formula. Per cambiare l'aspetto, fai clic con il pulsante destro del mouse sullo stile selezionato e fai clic su Modifica . Tutte le celle con questo stile verranno automaticamente aggiornate.

anche se personalmente non preferisco usare VBA, la soluzione VBA è migliore in questo caso perché la formattazione della cella può essere modificata in modo dinamico quando la formula viene inserita in una cella (o viceversa). Grazie.
Wilson,

4

C'è un modo molto semplice per farlo, testato in Excel 2016.

Metti in evidenza la tua gamma a cui desideri applicare, diciamo da A3:W20. Vai alla formattazione condizionale e seleziona NEW RULE | USE A FORMULA TO DETERMINE WHICH CELLS TO FORMAT.

Inserisci =isformula(A3)e scegli il formato che desideri applicare.

A3è ovviamente un riferimento alla prima cella dell'intervallo, ma questa formattazione si applica a tutti. Il risultato è che all'interno del tuo intervallo, qualsiasi cella che è una formula è formattata in modo condizionale.



1

I siti di aiuto più recenti raccomandano una funzione definita dall'utente:

Function IsFormula(cell) as boolean 
  IsFormula = cell.HasFormula
End Function

Quindi utilizzare quella funzione come condizione

E infatti, Excel 2013 e versioni successive hanno IsFormulauna funzione standard.


-1

Puoi anche utilizzare la formattazione condizionale:

  1. Seleziona l'intervallo di celle a cui desideri applicare la formattazione condizionale
  2. In Home -> Formattazione condizionale -> Nuova regola: utilizzare una formula per rilevare quale cella formattare
  3. Nei valori di Formato quando questa formula è vera, inserisci: =HasNoFormula
  4. Seleziona il formato desiderato

Testato utilizzando Excel 2010.


La tua risposta è incompleta Non credo che tu abbia provato.
Wilson,

2
-1, questo non fa nulla. Che cosa dovrebbe fare = HasNoFormula?
toryan,
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.