Calcolatore Copia Valore Se – Google Drive Foglio di Calcolo
Calcola automaticamente i valori condizionali nel tuo foglio Google Drive con questa utility professionale
Risultati del Calcolo
Guida Completa: Come Usare la Funzione “Copia Valore Se” in Google Drive Foglio di Calcolo
La funzione condizionale per copiare valori in Google Sheets (Fogli Google) è uno strumento potente che consente di estrarre dati specifici in base a criteri definiti. Questa guida approfondita ti mostrerà come padroneggiare questa tecnica, con esempi pratici, casi d’uso avanzati e soluzioni per problemi comuni.
1. Comprendere i Fondamenti della Funzione Condizionale
In Google Sheets, non esiste una funzione specifica chiamata “COPIA.VALORE.SE”, ma possiamo ottenere lo stesso risultato combinando diverse funzioni:
- FILTER: La funzione più moderna e flessibile per estrarre dati in base a condizioni
- QUERY: Potente funzione SQL-like per manipolazione dati avanzata
- ARRAYFORMULA + IF: Combinazione classica per operazioni condizionali
- VLOOKUP/INDEX + MATCH: Metodi tradizionali per ricerche condizionali
La sintassi di base per copiare valori condizionalmente è:
=FILTER(range_dati, range_condizione=valore_condizione)
2. Esempi Pratici di Copia Condizionale
| Scenario | Formula | Descrizione |
|---|---|---|
| Copia valori se uguali | =FILTER(B2:B100, A2:A100=”Completato”) | Copia valori dalla colonna B dove la colonna A è “Completato” |
| Copia valori se maggiori di | =FILTER(C2:C50, C2:C50>100) | Copia valori dalla colonna C maggiori di 100 |
| Copia con più condizioni | =FILTER(D2:D200, (A2:A200=”Attivo”)*(B2:B200>50)) | Copia valori da D dove A=”Attivo” E B>50 |
| Copia valori unici | =UNIQUE(FILTER(E2:E150, E2:E150<>“”)) | Copia solo valori unici non vuoti dalla colonna E |
3. Confronto tra Metodi di Copia Condizionale
| Metodo | Vantaggi | Svantaggi | Prestazioni (10k righe) |
|---|---|---|---|
| FILTER | Sintassi semplice, gestisce array, aggiornamento automatico | Disponibile solo in nuove versioni | ~1.2 secondi |
| QUERY | Estremamente flessibile, sintassi SQL | Curva di apprendimento ripida | ~1.8 secondi |
| ARRAYFORMULA + IF | Compatibilità universale | Formula lunga per condizioni complesse | ~2.5 secondi |
| App Script | Prestazioni ottimizzate, logica complessa | Richiede conoscenza JavaScript | ~0.8 secondi |
4. Errori Comuni e Soluzioni
-
Errore #N/A o #VALUE:
Cause: Intervalli non corrispondenti o sintassi errata.
Soluzione: Verifica che tutti gli intervalli abbiano la stessa dimensione. Usa =ROWS(A2:A10) per controllare.
-
Risultati vuoti inaspettati:
Cause: Condizione troppo restrittiva o formattazione dati incoerente.
Soluzione: Usa =TRIM() per rimuovere spazi o =VALUE() per convertire testo in numeri.
-
Prestazioni lente:
Cause: Formula applicata a intervalli troppo ampi.
Soluzione: Limita l’intervallo ai dati effettivi usando =COUNTA() per determinare l’ultima riga.
-
Errori di tipo:
Cause: Confronto tra tipi diversi (testo vs numero).
Soluzione: Usa =TO_TEXT() o =TO_PURE_NUMBER() per standardizzare i tipi.
5. Tecniche Avanzate
a. Copia condizionale con formattazione: Combina FILTER con funzioni di formattazione:
=ARRAYFORMULA(IFERROR(TEXT(FILTER(B2:B100, A2:A100="Urgent"), "dd/mm/yyyy")))
b. Copia con riferimento dinamico: Usa INDIRECT per riferimenti flessibili:
=FILTER(INDIRECT("Foglio2!"&B1&":"&B2), INDIRECT("Foglio2!"&C1&":"&C2)=D1)
c. Copia con validazione dati: Aggiungi controllo errori:
=IF(COUNTIF(A2:A100, "Critico")>0, FILTER(B2:B100, A2:A100="Critico"), "Nessun dato critico")
d. Copia con ordinamento: Combina con SORT:
=SORT(FILTER(B2:D100, C2:C100>1000), 1, FALSE)
6. Automazione con Google Apps Script
Per operazioni complesse o ricorrenti, considera l’uso di Google Apps Script:
function copyConditionalValues() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Dati");
const data = sheet.getRange("A2:C100").getValues();
const results = [];
data.forEach(row => {
if (row[0] === "Approvato" && row[2] > 500) {
results.push([row[1]]);
}
});
sheet.getRange("D2:D" + (1 + results.length)).setValues(results);
}
Questo script:
- Legge dati dall’intervallo A2:C100
- Filtra righe dove colonna A = “Approvato” E colonna C > 500
- Copia i valori della colonna B nella colonna D
- È ~30% più veloce di FILTER per dataset grandi
7. Best Practice per la Copia Condizionale
- Ottimizza gli intervalli: Usa intervalli specifici invece di colonne intere (es. A2:A100 invece di A:A)
- Documenta le formule: Aggiungi commenti con N(“commento”) per spiegare logiche complesse
- Valida i dati: Usa DATA VALIDATION per prevenire errori di input
- Testa con campioni: Verifica sempre la formula con un sottoinsieme di dati
- Considera le prestazioni: Per >50k righe, valuta l’uso di Apps Script o BigQuery
- Gestisci gli errori: Avvolgi le formule in IFERROR per messaggi personalizzati
- Usa nomi intervallo: Rendi le formule più leggibili con intervalli nominati
8. Casi d’Uso Reali
a. Report Vendite: Estrai solo le vendite sopra una certa soglia per regione specifica.
b. Gestione Progetti: Filtra task completati per un determinato responsabile.
c. Analisi Dati: Copia solo i valori anomali (outliers) in un nuovo foglio.
d. CRM: Estrai contatti con stato “Lead caldo” e data ultimo contatto > 30 giorni.
e. Inventario: Copia prodotti con scorte sotto la soglia di riordino.
9. Limitazioni e Alternative
Mentre le funzioni condizionali di Google Sheets sono potenti, hanno alcune limitazioni:
- Dimensione dati: FILTER ha un limite di ~10 milioni di celle in output
- Complessità: QUERY ha un limite di 50.000 caratteri nella formula
- Prestazioni: ARRAYFORMULA può diventare lenta con >100k righe
- Tipi dati: Alcune funzioni non gestiscono bene date o orari
Alternative per dataset molto grandi:
- Google BigQuery: Per analisi su milioni di righe
- Apps Script: Per operazioni batch complesse
- Python + API: Per integrazione con altri sistemi
- Data Studio: Per visualizzazione dati avanzata
10. Futuro delle Funzioni Condizionali in Google Sheets
Google sta costantemente migliorando le capacità di Sheets. Alcune funzionalità in sviluppo includono:
- FILTER migliorato: Supporto per condizioni regolari (regex) native
- QUERY ottimizzato: Prestazioni migliorate per dataset grandi
- Nuove funzioni: =XFILTER e =XQUERY per operazioni più flessibili
- Integrazione AI: Suggerimenti automatici per formule condizionali
- Collaborazione: Funzioni condizionali che si aggiornano in tempo reale tra utenti
Per rimanere aggiornato sulle novità, consulta il Google Workspace Updates Blog.
11. Esempio Completo: Sistema di Report Automatico
Immagina di dover creare un report mensile che:
- Filtra le vendite del mese corrente
- Per ogni regione
- Con importo > €1000
- Ordinate per data
- Con totale parziale per regione
Soluzione:
=LET(
dati, FILTER(Dati!A2:E, (MONTH(Dati!A2:A)=MONTH(TODAY()))*(YEAR(Dati!A2:A)=YEAR(TODAY()))*(Dati!E2:E>1000)),
dati_ordinati, SORT(dati, 1, TRUE, 3, TRUE),
{ "Data", "Prodotto", "Regione", "Importo", "Stato";
dati_ordinati;
"", "", "", "", "";
"", "TOTALE PARZIALE", QUERY(dati_ordinati, "select sum(Col4) group by Col3 pivot Col3 label sum(Col4) ''")
}
)
Questa formula:
- Usa LET per definire variabili intermedie
- Filtra dati per mese corrente e importo > €1000
- Ordina per data e regione
- Aggiunge una riga vuota di separazione
- Calcola totali parziali per regione usando QUERY