# Funzioni Avanzate in Excel ### Funzioni Logiche - **SE (IF)**: Consente di effettuare controlli logici e restituire un valore basato sul risultato della condizione. - **Sintassi**: `=SE(condizione; valore_se_vero; valore_se_falso)` - **Esempio**: Se `A1` contiene un numero maggiore di 10, restituisci "Maggiore di 10"; altrimenti, restituisci "Minore o uguale a 10". ```excel =SE(A1 > 10; "Maggiore di 10"; "Minore o uguale a 10") ``` - **E (AND) e O (OR)**: Funzioni logiche che verificano se più condizioni sono vere. - **Esempio con E**: La formula `=E(A1 > 5; B1 < 10)` restituirà VERO solo se entrambe le condizioni sono vere. - **Esempio con O**: La formula `=O(A1 > 5; B1 < 10)` restituirà VERO se almeno una delle condizioni è vera. #### Uso di SE Annidati Quando abbiamo più condizioni da verificare, possiamo utilizzare formule **SE annidate** (o nidificate), in cui un SE si trova all'interno di un altro SE. Questa tecnica è utile per creare formule più articolate, con vari possibili risultati. - **Sintassi dei SE annidati**: `=SE(condizione1; valore_se_vero1; SE(condizione2; valore_se_vero2; valore_se_falso2))` - **Esempio di SE annidati**: Supponiamo di voler classificare i valori di `A1` come segue: - Se il valore è maggiore di 80, restituisci "Alto". - Se il valore è compreso tra 50 e 80, restituisci "Medio". - Se il valore è minore di 50, restituisci "Basso". La formula diventa: ```excel =SE(A1 > 80; "Alto"; SE(A1 >= 50; "Medio"; "Basso")) ``` - In questo caso, il primo SE verifica se `A1` è maggiore di 80. Se vero, restituisce "Alto". Se falso, passa al secondo SE, che verifica se `A1` è almeno 50 (valore compreso tra 50 e 80) e, se vero, restituisce "Medio"; altrimenti restituisce "Basso". --- ### Funzioni Logiche su Intervalli Le funzioni seguenti permettono di eseguire operazioni logiche su intervalli di celle, restituendo risultati solo se vengono soddisfatte determinate condizioni. - **CONTA.SE (COUNTIF)**: Conta il numero di celle che soddisfano un criterio specifico. - **Sintassi**: `=CONTA.SE(intervallo; criterio)` - **Esempio**: Contare quante celle in `A1:A10` contengono il valore "Rosso". ```excel =CONTA.SE(A1:A10; "Rosso") ``` - **SOMMA.SE (SUMIF)**: Somma i valori di un intervallo solo se soddisfano un criterio specifico. - **Sintassi**: `=SOMMA.SE(intervallo_criteri; criterio; intervallo_somma)` - **Esempio**: Sommare i valori in `B1:B10` solo se i valori corrispondenti in `A1:A10` sono maggiori di 10. ```excel =SOMMA.SE(A1:A10; ">10"; B1:B10) ``` - **MEDIA.SE (AVERAGEIF)**: Calcola la media dei valori di un intervallo solo se soddisfano un criterio specifico. - **Sintassi**: `=MEDIA.SE(intervallo_criteri; criterio; intervallo_media)` - **Esempio**: Calcolare la media di `B1:B10` solo per i valori corrispondenti in `A1:A10` che sono minori o uguali a 20. ```excel =MEDIA.SE(A1:A10; "<=20"; B1:B10) ``` > **Nota**: Per queste funzioni, è importante inserire il criterio tra virgolette. --- ### Funzioni Logiche su Intervalli Utilizzando Più Condizioni Per effettuare operazioni logiche su intervalli con più criteri, utilizziamo le versioni delle funzioni che supportano condizioni multiple. - **CONTA.PIÙ.SE (COUNTIFS)**: Conta il numero di celle che soddisfano più criteri. - **Sintassi**: `=CONTA.PIÙ.SE(intervallo_criteri1; criterio1; intervallo_criteri2; criterio2; ...)` - **Esempio**: Contare quante celle in `A1:A10` contengono "Verde" e, nello stesso tempo, i valori corrispondenti in `B1:B10` sono superiori a 3. ```excel =CONTA.PIÙ.SE(A1:A10; "Verde"; B1:B10; ">3") ``` - **SOMMA.PIÙ.SE (SUMIFS)**: Somma i valori di un intervallo solo se soddisfano più criteri. - **Sintassi**: `=SOMMA.PIÙ.SE(intervallo_somma; intervallo_criteri1; criterio1; intervallo_criteri2; criterio2; ...)` - **Esempio**: Sommare i valori di `B1:B10` se `A1:A10` contiene "Rosso" **e** `C1:C10` è maggiore di 5. ```excel =SOMMA.PIÙ.SE(B1:B10; A1:A10; "Rosso"; C1:C10; ">5") ``` - **MEDIA.PIÙ.SE (AVERAGEIFS)**: Calcola la media dei valori di un intervallo solo se soddisfano più criteri. - **Sintassi**: `=MEDIA.PIÙ.SE(intervallo_media; intervallo_criteri1; criterio1; intervallo_criteri2; criterio2; ...)` - **Esempio**: Calcolare la media di `B1:B10` se `A1:A10` contiene "Blu" **e** `C1:C10` è minore o uguale a 10. ```excel =MEDIA.PIÙ.SE(B1:B10; A1:A10; "Blu"; C1:C10; "<=10") ``` > **Nota**: Anche in queste funzioni, è importante inserire il criterio tra virgolette. --- ### Funzioni di Ricerca e di Ordinamento Le funzioni di ricerca permettono di trovare e restituire informazioni specifiche da tabelle di dati, facilitando l’analisi e la gestione di grandi quantità di dati. - **CERCA.VERT (VLOOKUP)**: Cerca un valore nella prima colonna di un intervallo e restituisce un valore corrispondente da un’altra colonna nella stessa riga. - **Sintassi**: `=CERCA.VERT(valore; intervallo; indice_colonna; [intervallo_esatto])` - **Esempio**: Cercare "Mario" nella prima colonna di `A1:D10` e restituire il valore della terza colonna nella stessa riga. ```excel =CERCA.VERT("Mario"; A1:D10; 3; FALSO) ``` - **FILTER**: Filtra un intervallo di celle in base a uno o più criteri specifici e restituisce solo le righe che soddisfano tali criteri. - **Sintassi**: `=FILTER(intervallo; criteri; [se_vuoto])` - **Esempio**: Restituire tutte le righe di `A1:C10` in cui i valori della colonna `B` sono superiori a 100. ```excel =FILTER(A1:C10; B1:B10 > 100) ``` - **Esempio con più criteri**: Filtrare le righe dove `B1:B10` è maggiore di 100 **e** `C1:C10` contiene "Attivo". ```excel =FILTER(A1:C10; (B1:B10 > 100) * (C1:C10 = "Attivo")) ``` - **SORT**: Ordina un intervallo di dati in base a una o più colonne, in ordine crescente o decrescente. - **Sintassi**: `=SORT(intervallo; colonna_ordinamento; [ordine])` - **Esempio**: Ordinare un elenco di nomi in ordine alfabetico. Supponiamo di avere i nomi in `A1:A5`: ```excel =SORT(A1:A5) ``` Questo ordinerà i nomi in `A1:A5` in ordine alfabetico (crescente) senza alterare l’ordine originale dei dati. - **Esempio per ordinare una tabella in base a un criterio**: Ordinare una tabella di prodotti per prezzo in ordine decrescente. Se la tabella ha i nomi dei prodotti in `A1:A5` e i prezzi in `B1:B5`, ordiniamo per la seconda colonna (Prezzo) in ordine decrescente: ```excel =SORT(A1:B5; 2; -1) ``` Qui `2` indica la colonna su cui si basa l’ordinamento (Prezzo), e `-1` rappresenta l'ordine decrescente. - **Esempio con più colonne**: Ordinare una tabella di prodotti per "Categoria" (colonna 2) in ordine crescente e, all’interno di ogni categoria, ordinare per "Prezzo" (colonna 3) in ordine decrescente. Supponiamo di avere i dati in `A1:C10`: ```excel =SORT(A1:C10; 2; 1; 3; -1) ``` Questo ordinerà la tabella prima per Categoria in ordine crescente, poi per Prezzo in ordine decrescente all’interno di ciascuna categoria. --- # Creare Condizioni in Excel Le condizioni sono elementi fondamentali in Excel, utilizzati per selezionare, contare o sommare celle che soddisfano criteri specifici. Funzioni come **CONTA.SE**, **SOMMA.SE**, e **MEDIA.SE** richiedono di impostare criteri che possono essere di uguaglianza, disuguaglianza, confronto numerico, o di ricerca parziale mediante caratteri jolly. ### Condizioni di Uguaglianza e Disuguaglianza Le condizioni di uguaglianza e disuguaglianza permettono di filtrare le celle basandosi su un valore specifico. - **Condizione di Uguaglianza (`=`)**: Cerca esattamente il valore specificato. - **Esempio**: `=CONTA.SE(A1:A10; "Rosso")` conta tutte le celle in `A1:A10` che contengono esattamente "Rosso". - **Condizione di Disuguaglianza (`<>`)**: Cerca tutti i valori diversi da quello specificato. - **Esempio**: `=SOMMA.SE(A1:A10; "<>Rosso"; B1:B10)` somma i valori in `B1:B10` dove le celle corrispondenti in `A1:A10` non contengono "Rosso". ### Condizioni di Comparazione Le condizioni di comparazione permettono di applicare filtri in base a confronti numerici o alfabetici, utilizzando operatori matematici. - **Maggiore di (`>`)**: Seleziona le celle che contengono valori maggiori di un determinato numero. - **Esempio**: `=CONTA.SE(A1:A10; ">10")` conta le celle in `A1:A10` con valori maggiori di 10. - **Minore di (`<`)**: Seleziona le celle con valori inferiori a un determinato numero. - **Esempio**: `=SOMMA.SE(A1:A10; "<5"; B1:B10)` somma i valori in `B1:B10` dove i valori corrispondenti in `A1:A10` sono minori di 5. - **Maggiore o uguale a (`>=`)** e **Minore o uguale a (`<=`)**: Ampliano le condizioni di confronto per includere il valore limite. - **Esempio con `>=`**: `=MEDIA.SE(A1:A10; ">=50"; B1:B10)` calcola la media dei valori in `B1:B10` dove i valori corrispondenti in `A1:A10` sono almeno 50. - **Esempio con `<=`**: `=CONTA.SE(A1:A10; "<=100")` conta le celle in `A1:A10` che contengono valori minori o uguali a 100. > **Nota**: Quando si usano condizioni di comparazione all'interno di funzioni come **CONTA.SE** o **SOMMA.SE**, i criteri vanno racchiusi tra virgolette (ad esempio, `">=50"`). --- ### Condizioni di Ricerca Parziale con i Caratteri Jolly I **caratteri jolly** sono strumenti di ricerca che consentono di creare condizioni basate su corrispondenze parziali, utili nelle funzioni per trovare parole o stringhe di testo che contengono o rispettano determinati schemi. 1. **Asterisco (`*`)**: Rappresenta una sequenza di caratteri di qualsiasi lunghezza, inclusi lettere, numeri o spazi. - **Inizio con**: `"esempio*"` trova tutte le celle che iniziano con "esempio", come "esempio di testo" o "esempio completo". - **Fine con**: `"*esempio"` trova tutte le celle che terminano con "esempio", come "un esempio" o "questo esempio". - **Contiene**: `"*esempio*"` trova tutte le celle che contengono "esempio" in qualsiasi posizione, come "un esempio pratico" o "esempio finale". - **Esempio di utilizzo**: ```excel =CONTA.SE(A1:A10; "*testo*") ``` Conta tutte le celle in `A1:A10` che contengono la parola "testo" in qualsiasi posizione. 2. **Punto Interrogativo (`?`)**: Rappresenta un singolo carattere di qualsiasi tipo. È utile per cercare stringhe con una variazione minima in un carattere specifico. - **Esempio**: `"tes?o"` trova parole come "testo", "teso", ma non "tesoro". - **Esempio di utilizzo**: ```excel =CONTA.SE(A1:A10; "tes?o") ``` Conta tutte le celle in `A1:A10` che contengono una stringa di testo che coincide con il modello "tes?o". --- ### Riepilogo degli Esempi di Condizioni | Condizione | Esempio di Funzione | Descrizione | |-----------------------------|---------------------------------------------------|------------------------------------------------------------| | **Uguaglianza** | `=CONTA.SE(A1:A10; "Rosso")` | Conta le celle che contengono "Rosso". | | **Disuguaglianza** | `=SOMMA.SE(A1:A10; "<>Rosso"; B1:B10)` | Somma i valori in `B1:B10` dove `A1:A10` non contiene "Rosso". | | **Maggiore di** | `=CONTA.SE(A1:A10; ">10")` | Conta le celle con valori maggiori di 10. | | **Minore o uguale a** | `=MEDIA.SE(A1:A10; "<=20"; B1:B10)` | Calcola la media per i valori minori o uguali a 20 in `A1:A10`. | | **Inizio con `*`** | `=CONTA.SE(A1:A10; "testo*")` | Conta le celle che iniziano con "testo". | | **Contiene `*`** | `=CONTA.SE(A1:A10; "*testo*")` | Conta le celle che contengono "testo" ovunque nel testo. | | **Singolo carattere `?`** | `=CONTA.SE(A1:A10; "tes?o")` | Conta le celle che corrispondono a "tes?o" con un carattere variabile. | Questi strumenti di condizione permettono di filtrare e analizzare i dati in modo preciso e flessibile, semplificando il lavoro anche con grandi quantità di informazioni.