Condividi:        

[Excel] formattazione condizionale con più di tre criteri

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] formattazione condizionale con più di tre criteri

Postdi giuliootto » 02/01/07 17:48

Buon Anno a Tutti :P

Ho un problema con la formattazione condizionale di Excel che non accetta più di tre criteri.

Qualcuno conosce un metodo per ovviare a questa limitazione?

Ciao e grazie,
giuliootto
Giuliootto
giuliootto
Newbie
 
Post: 3
Iscritto il: 02/01/07 17:33

Sponsor
 

Postdi Anthony47 » 02/01/07 19:50

Ciao giuliootto,
il limite di 3 condizioni non mi risulta che sia superabile.
Se si tratta di numeri e vuoi limitarti a colorare il carattere in funzione dei valori, credo che si possano raggiungere 4 colori piu' quello di base utilizzando le formattazioni personalizzate.
Se hai esigenze piu' varie, dovresti verificare l' uso di una macro attivata dall' evento Worksheet_Calculate o Worksheet_Change con cui esamini le celle che ti interessano e determini la formattazione da applicare
Ad esempio con questa applichi il colore giallo se il valore delle celle nel range A1:D100 e' superiore a 150, altrimenti niente.
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cella In Range("A1:D100")
If cella.Value > 150 Then cella.Interior.ColorIndex = 6 Else cella.Interior.ColorIndex = xlColorIndexNone
Next cella
End Sub

Se serve altro aiuto, fatti sentire.


Ciao,
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Funziona!!!!

Postdi giuliootto » 03/01/07 09:23

Ciao Anthony47,

Purtroppo non posso effettuare il Test su tutto il range di celle (una matrice di 30x10000).

Comunque il mio obbiettivo era quello di filtrare tutti i valori non numerici e non data/ora e con il seguente formato condizionale sembra funzionare:

Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotBetween, _
Formula1:="-99999999999999999", Formula2:="99999999999999999"
Selection.FormatConditions(1).Font.ColorIndex = 2

Grazie ancora per l'aiuto, ciao,
giuliootto
Giuliootto
giuliootto
Newbie
 
Post: 3
Iscritto il: 02/01/07 17:33

Postdi Anthony47 » 03/01/07 13:01

Ciao giuliootto
Hai una soluzione che ti quadra, quindi il problema e’ risolto; ma faccio lo stesso una osservazione per altre situazioni future.
il mio obbiettivo era quello di filtrare tutti i valori non numerici e non data/ora

Non vedo come questa esigenza si scontri con il limite delle 3 condizioni, dato questo corrisponde a 1 sola condizione di 1 solo criterio: valore della cella di tipo numerico.
Si mappare questa situazione in questo modo:
1) Selezioni tutte le colonne che devi formattare, supponiamo da D a AZ
2) Poi Menu ->Formato ->Formattazione condizionale
3) Nel box che si apre, scegli come Condizione1 “la formula è” e come formula (spazio subito accanto) inserisci =VAL.NUMERO(D1) Poi scegli il formato e chiudi con Ok, Ok. Nota che se avessi selezionato ad esempio da colonna B dovresti usare =VAL.NUMERO(B1), cioe’ sempre la prima cella in alto a sx del range selezionato.

Se vuoi applicare la formattazione da macro, puoi usare queste istruzioni:
Codice: Seleziona tutto
Range("D:AZ").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=VAL.NUMERO(D1)"
Selection.FormatConditions(1).Interior.ColorIndex = 44       '< variare indice a piacere



Insomma, non sono da confondere “condizioni” e “criteri”: le “condizioni” sono solo 3, i “criteri” che ogni condizione puo’ esprimere sono tutti quelli definibili in una formula.

Spero che l’ informazione serva; ciao a tutti.
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi giuliootto » 03/01/07 15:08

Anthony47 ha scritto:Ciao giuliootto
Hai una soluzione che ti quadra, quindi il problema e’ risolto; ma faccio lo stesso una osservazione per altre situazioni future.
il mio obbiettivo era quello di filtrare tutti i valori non numerici e non data/ora

Non vedo come questa esigenza si scontri con il limite delle 3 condizioni, dato questo corrisponde a 1 sola condizione di 1 solo criterio: valore della cella di tipo numerico.
Si mappare questa situazione in questo modo:
1) Selezioni tutte le colonne che devi formattare, supponiamo da D a AZ
2) Poi Menu ->Formato ->Formattazione condizionale
3) Nel box che si apre, scegli come Condizione1 “la formula è” e come formula (spazio subito accanto) inserisci =VAL.NUMERO(D1) Poi scegli il formato e chiudi con Ok, Ok. Nota che se avessi selezionato ad esempio da colonna B dovresti usare =VAL.NUMERO(B1), cioe’ sempre la prima cella in alto a sx del range selezionato.

Se vuoi applicare la formattazione da macro, puoi usare queste istruzioni:
Codice: Seleziona tutto
Range("D:AZ").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=VAL.NUMERO(D1)"
Selection.FormatConditions(1).Interior.ColorIndex = 44       '< variare indice a piacere



Insomma, non sono da confondere “condizioni” e “criteri”: le “condizioni” sono solo 3, i “criteri” che ogni condizione puo’ esprimere sono tutti quelli definibili in una formula.

Spero che l’ informazione serva; ciao a tutti.


Ho provato la tua soluzione, ma probabilmente ho semplificato un pò troppo il mio problema:

Ho una matrice di formule (formule derivate da un componente aggiuntivo di Excel) che mi restituisce su 30 colonne per N righe (max.10000) una serie di valori nel seguente formato;

colonna1 colonna2 ... colonna29 colonna30
riga1 data/ora valore data/ora valore
rigaN data/ora valore data/ora valore

Ora sia la data/ora che il valore possono contenere dei dati che non sono validi (es. Bad, Error, ecc) io non voglio visualizzare questi dati.

Il workaround che ho provato sembra funzionare ma se hai una soluzione più elegante sono ben contento di testarla.

Grazie ancora,
giuliootto
Giuliootto
giuliootto
Newbie
 
Post: 3
Iscritto il: 02/01/07 17:33

Postdi Anthony47 » 03/01/07 19:08

Non volevo suggerire soluzioni piu’ eleganti, anche io sono per l’ efficacia della soluzione, ma solo cercare di chiarire che il tuo caso non ha niente a che vedere con il limite dei 3 livelli di formattazione condizionale, come il titolo del post indica. Sinceramente ho pensato che avessi confuso “3 livelli” (che e’ un limite di excel) con “3 criteri” (i criteri invece possono essere tanti quanti riesci a inserirne nella formula che usi per la formattazione condizionale), e ti chiedo scusa se mi sono sbagliato e ti ho confuso le idee.

Con il metodo che hai indicato, essenzialmente usi il colore bianco per i caratteri delle celle che non contengono numeri, che e’ un buon sistema per nascondere le celle.
Nell’ esempio vba che ti ho inviato io, viene colorato lo sfondo della cella se il contenuto e’ un numero (o una data, che e’ sempre un dato numerico); se (per diletto) vuoi provare il mio codice allora lo devi cambiare in:

Codice: Seleziona tutto
Range("A:AD").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=O(VAL.ERRORE(A1);VAL.TESTO(A1))"
Selection.FormatConditions(1).Font.ColorIndex = 2       


Funzionalmente non aggiunge nulla al tuo, salvo che:
-cancellando le formattazioni preesistenti (istruzione .Delete) parti sempre pulito ed eviti di AGGIUNGERE “Condizioni” se ne esistono gia’ (tra l’ altro, se cercassi di inserire una 4° condizione ti andrebbe in errore)
-l’ uso della condizione “la formula è” fa intuire che si possono controllare innumerevoli criteri per l’ applicazione della formattazione.

La stessa formula =O(VAL.ERRORE(A1);VAL.TESTO(A1)) la puoi utilizzare se volessi utilizzare il sistema manuale (selezioni le celle e dai il format condizionale).

Ciao,
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] formattazione condizionale con più di tre criteri":


Chi c’è in linea

Visitano il forum: Nessuno e 117 ospiti