# Tecniche di refactoring del codice nei fogli di calcolo

URL: https://formula.dog/it/journal/tecniche-refactoring-codice-fogli-calcolo
Type: blog
Locale: it
Published: 2026-06-29
Updated: 2026-07-04

---

> Le formule caotiche rallentano il lavoro e si rompono sotto pressione. Queste tecniche di refactoring del codice risolvono il problema, con esempi pronti da usare oggi.

Le tecniche di refactoring del codice servono a ripulire qualcosa che funziona già, senza romperlo. Nel mondo dei fogli di calcolo significa prendere una formula che dà il risultato giusto ma sembra scritta alle 23 il giorno prima della scadenza, e trasformarla in qualcosa che vorrai davvero riaprire tra tre mesi.

Biscuit l'ha già recuperata per voi tra i cespugli delle celle. Ecco cosa fa davvero la differenza.

## La tua formula funziona, ma qualcosa proprio non torna?

Il segnale classico: apri un file scritto sei mesi fa e passi tre minuti a leggere una singola cella prima di capire cosa fa. Oppure copi una formula in una nuova colonna e quella si rompe in silenzio perché dentro c'era un riferimento di riga scritto a mano.

Il refactoring non cambia il risultato. Cambia la struttura, così il risultato resta corretto anche quando cambia il contesto intorno: nuove righe, nuove colonne, un foglio rinominato.

Puoi saltare questo passaggio se: il file è un calcolo una tantum che nessun altro toccherà. Il refactoring ha un costo (tempo, disturbo) e se il beneficio è zero, anche il ritorno lo è.

Ne vale la pena se: più persone usano il file, lo aggiorni regolarmente, oppure le formule si incatenano tra più fogli.

Alcuni segnali d'allarme da non ignorare:

- 
Una formula più larga della colonna anche allo zoom al 100%

- 
Più di due livelli di IF annidati

- 
Numeri scritti a mano che ricompaiono in più di tre punti

- 
Colleghi che ti chiedono di spiegare cosa fa una cella invece di leggerla da soli

Anche uno solo di questi segnali basta per programmare una sessione di refactoring.

![Primo piano di un foglio di calcolo pulito e organizzato su schermo laptop con celle colorate](https://fdzlnqpwsaniezitwiuw.supabase.co/storage/v1/object/public/cms-media/formula-dog/2026-06/2cc0d7-inline1.webp)

## Extract Method: spacca una formula in passaggi con nome

Questa è la tecnica più utile in assoluto, tanto nel codice quanto nei fogli di calcolo. L'idea: se una formula fa tre cose, la dividi in tre celle, una per passaggio, poi combini i risultati.

**Prima (una cella che fa tutto):**

`=IF(AND(A2<>"",DATEDIF(A2,TODAY(),"Y")>30),"Senior","Junior")`**Dopo:**

- 
Cella `C2`: `=DATEDIF(A2,TODAY(),"Y")`, chiamata "Età in anni"

- 
Cella `D2`: `=AND(A2<>"",C2>30)`, chiamata "È senior?"

- 
Cella `E2`: `=IF(D2,"Senior","Junior")`, il risultato finale

Ecco cosa dà davvero in una cella vera. Ogni passaggio si legge da solo. Se la soglia passa da 30 a 25, cambi un numero in una cella. Se il DATEDIF si rompe perché manca una data, vedi esattamente dove.

Il compromesso: usi più colonne. Su un foglio già stretto può sembrare uno spreco. Usa un'area di celle di supporto su un foglio separato se lo spazio scarseggia. Chiamalo "Aiuti" o "Calcoli" così chi apre il file capisce subito l'organizzazione.

Funziona identico su Excel e su Sheets, non c'è nessuna limitazione di versione per usare celle di supporto.

## Replace Temp with Query: basta salvare quello che puoi calcolare al volo

Una variabile temporanea, in un foglio di calcolo, è una cella che riempi con un valore intermedio che nessun altro richiama direttamente: ti serviva solo per arrivare al passaggio dopo.

A volte queste celle sono utili (vedi sopra). Ma quando hai una catena di cinque celle di supporto e conta solo l'ultima, mentre le intermedie non cambiano mai, puoi comprimerle in un'unica formula.

**Tre celle di supporto che costruiscono verso un risultato:**

- 
`=B2*C2`, subtotale

- 
`=D2*0.2`, importo IVA

- 
`=D2+E2`, totale

**Compressa:**

`=(B2*C2)+(B2*C2*0.2)`Oppure con un intervallo denominato per l'aliquota:

`=B2*C2*(1+AliquotaIVA)`La regola: se una cella di supporto viene usata solo da un'altra cella, chiediti se quella formula è abbastanza corta da poter essere incorporata. Se sì, incorporala. Se no, tieni la cella di supporto e dalle un nome sensato.

Dove tracciare il limite: una formula che supera gli 80 caratteri è di solito troppo lunga da incorporare. A quel punto conviene tornare all'Extract Method visto sopra. Tieni le celle di supporto quando aiutano davvero la lettura, toglile quando sono solo rumore.

## Encapsulate Field: blinda i valori che non devono cambiare

Nei fogli di calcolo, incapsulare significa tenere i tuoi valori fissi, aliquote, soglie, riferimenti, in un unico posto invece che sparsi come numeri scritti a mano dentro le formule.

È la formula che tutti dimenticano e che tutti cercano.

Un'aliquota IVA scritta a mano come `0.2` in 47 formule dentro una cartella di lavoro è una trappola di manutenzione. Cambi l'aliquota e devi trovarle tutte e 47. Ne perdi tre e hai un errore di calcolo.

**Come sistemarlo:**

- 
Crea un foglio `Impostazioni` con una cella chiamata `AliquotaIVA = 0.2`

- 
Richiamala in ogni formula: `=B2*AliquotaIVA`

- 
Quando l'aliquota cambia, aggiorni una cella sola. Tutto il resto segue.

Vale anche per i riferimenti di data (la data di oggi come ancora fissa), i moltiplicatori di valuta e le soglie di categoria. Se un valore compare più di due volte e può cambiare, merita un intervallo denominato.

**Come creare intervalli denominati:**

- 
Excel: scheda Formule > Gestione nomi > Nuovo

- 
Google Sheets: Dati > Intervalli denominati

La convenzione dei nomi conta. `AliquotaIVA` è chiaro. `AI` non lo è. `tmp_3` nemmeno. Usa nomi che chi non ha scritto la formula capisce in tre secondi.

![Analista professionista che rilegge pagine stampate di un foglio di calcolo su una scrivania con penna in mano](https://fdzlnqpwsaniezitwiuw.supabase.co/storage/v1/object/public/cms-media/formula-dog/2026-06/c48a77-inline2.webp)

## Elimina le duplicazioni: il principio DRY applicato alle formule

Il [principio DRY, Don't Repeat Yourself](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself) è tra i più citati nell'ingegneria del software, e vale anche per i fogli di calcolo. Se hai copiato la stessa VLOOKUP su 15 colonne con piccole variazioni, hai un problema di manutenzione pronto a esplodere.

Due strade a seconda della situazione:

**Excel 365 / Google Sheets:** usa XLOOKUP o INDEX-MATCH con espansione ad array per estrarre più colonne con una sola formula.

`=XLOOKUP(A2,TabellaRicerca[ID],TabellaRicerca[[Nome]:[Stato]])`Questa restituisce Nome e Stato insieme, senza copiare e incollare su più colonne.

**Excel più vecchio (2016 o precedente):** crea un'unica chiamata MATCH in una cella di supporto, poi usa INDEX riferendosi a quella posizione:

- 
`G2`: `=MATCH(A2,TabellaRicerca[ID],0)`, un solo MATCH per tutte le colonne

- 
`H2`: `=INDEX(TabellaRicerca[Nome],G2)`

- 
`I2`: `=INDEX(TabellaRicerca[Stato],G2)`

Continui a richiamare lo stesso risultato di MATCH ovunque. Se la colonna di ricerca cambia, aggiorni una sola formula.

Una nota di versione utile: XLOOKUP è arrivata su Excel 2019 per gli abbonati enterprise e su Excel 365. Se il tuo team usa Excel 2016, la strada INDEX-MATCH è quella giusta. Sheets supporta XLOOKUP dal 2022 su tutti i piani.

## Replace Conditional: cambia gli IF annidati con qualcosa di più pulito

Gli IF annidati sono il posto dove i fogli di calcolo diventano illeggibili. Al terzo livello hai già perso la maggior parte dei lettori, incluso te stesso tra sei mesi.

**Prima (catena di IF annidati):**

`=IF(A2>10000,"A",IF(A2>5000,"B",IF(A2>1000,"C","D")))`**Opzione 1: IFS (Excel 2016+ / Sheets)**

`=IFS(A2>10000,"A",A2>5000,"B",A2>1000,"C",TRUE,"D")`Più piatta, ma restano quattro condizioni in una sola formula. Accettabile.

**Opzione 2: VLOOKUP con una tabella di riferimento (l'approccio sottovalutato)**

Crea una piccola tabella di riferimento:

- 
Da 10001 in su: Categoria A

- 
Da 5001 a 10000: Categoria B

- 
Da 1001 a 5000: Categoria C

- 
Da 0 a 1000: Categoria D

Poi: `=VLOOKUP(A2,TabellaSoglie,2,TRUE)`

Il TRUE (corrispondenza approssimata) scorre la tabella ordinata e restituisce l'ultima categoria che rientra. La logica ora vive nella tabella, non sepolta nella formula. Vuoi cambiare una soglia? Modifichi una riga nella tabella.

Vale la spesa extra: l'approccio con tabella di riferimento rende la logica verificabile e visibile a chiunque, anche a chi non legge le formule. Se hai fretta puoi saltare questo passaggio: IFS va benissimo fino a tre condizioni.

La funzione SWITCH è un'altra opzione disponibile da Excel 2019+ e su Sheets, utile quando confronti valori esatti invece che intervalli. Si legge meglio di IFS nei casi di corrispondenza esatta.

## Substitute Algorithm: quando conviene riscrivere invece di rattoppare

A volte la formula non è sbagliata, è solo l'approccio sbagliato in partenza. Hai ereditato una formula di 200 caratteri che concatena testo con CONCATENATE e `&`, e devi aggiungere un altro campo. La mossa giusta non è allungarla ancora. È riscriverla con TEXTJOIN.

**Prima:**

`=A2&" | "&B2&" | "&C2&" | "&D2`**Dopo:**

`=TEXTJOIN(" | ",TRUE,A2:D2)`Se il tuo tavolo cambia faccia domani, questa formula ti segue. TEXTJOIN gestisce le celle vuote, gestisce gli array e non si rompe quando aggiungi la colonna E.

Stessa logica per:

- 
Sostituire VLOOKUP con XLOOKUP quando serve corrispondenza esatta e gestione dei valori mancanti

- 
Sostituire l'incapsulamento con IFERROR con la gestione errori nativa delle funzioni più recenti

- 
Sostituire le formule matrice inserite con Ctrl+Maiusc+Invio con gli array dinamici nativi di Excel 365

Lo stesso principio si applica su scala più grande: se gestisci una grande pipeline di dati dentro un foglio di calcolo che è diventato un groviglio di riferimenti INDIRECT, connessioni esterne e intervalli denominati che puntano ad altri intervalli denominati, a volte la mossa giusta è portare la logica fuori, in uno strumento vero (SQL, Python, Power Query), e usare il foglio solo per la visualizzazione. È una decisione più grande, ma appartiene alla stessa categoria.

![Due colleghi che collaborano davanti a una lavagna con diagrammi di flusso durante una revisione del codice](https://fdzlnqpwsaniezitwiuw.supabase.co/storage/v1/object/public/cms-media/formula-dog/2026-06/c94a4d-inline3.webp)

## Prima di iniziare: le tre cose che ti servono (e quando fermarti)

Le tecniche di refactoring del codice funzionano solo se non rompi niente che non puoi recuperare. Nel mondo dei fogli di calcolo significa:

- 
**Una copia di backup.** Prima di ogni sessione di refactoring, salva una copia datata della cartella di lavoro. Non un Salva con nome nella stessa cartella: un posto separato (backup cloud, email a te stesso, quello che preferisci). Ringrazierai te stesso la volta che qualcosa va storto.

- 
**Sapere quali dovrebbero essere i risultati attuali.** Prima di cambiare qualsiasi cosa, annota i valori chiave: totali, cifre di riepilogo, valori di celle importanti. Confrontali con le stesse celle dopo ogni modifica. Un controllo di 10 secondi che intercetta subito le regressioni.

- 
**Una modifica alla volta.** Non fare Extract Method, incapsulare tre intervalli denominati e appiattire un IF annidato nella stessa sessione. Se qualcosa si rompe, devi sapere quale modifica l'ha causato. Fai una cosa, verifica, poi passa alla successiva.

Questi tre passaggi richiedono circa cinque minuti da impostare. Ti hanno già fatto risparmiare molto più di cinque minuti in ogni sessione dove qualcosa è andato storto senza preavviso.

Il rischio del refactoring è il perfezionismo. Puoi passare un intero pomeriggio a riorganizzare una cartella di lavoro già funzionante, e finire con qualcosa di marginalmente più pulito al costo di mezza giornata.

Fissa un tempo limite prima di iniziare: 45 minuti per questa sessione. Dai priorità alle formule che causano davvero problemi, quelle che vengono lette male, quelle che si rompono nell'uso normale, quelle che bloccano una nuova funzionalità di cui hai bisogno.

Tutto il resto: lascialo stare. Una formula che funziona, che nessuno tocca, che non ha causato un errore in un anno, va bene così. Abbastanza buono è un traguardo legittimo.

Un modo utile di vedere la cosa: il refactoring non serve a rendere perfetta la cartella di lavoro. Serve a rendere più facile la prossima modifica. Chiediti prima di ogni cambiamento: questo rende più veloce o più sicura la prossima cosa che devo fare? Se sì, fallo. Se no, fermati. Good boy, Biscuit.

## FAQ

### Cosa significa refactoring del codice nei fogli di calcolo?

Il refactoring del codice nei fogli di calcolo significa ristrutturare formule e organizzazione della cartella di lavoro senza cambiare cosa calcolano. L'obiettivo è rendere le formule più facili da leggere, aggiornare e riusare senza toccare i risultati finali.

### Quando conviene fare refactoring delle formule in Excel o Google Sheets?

Conviene quando le formule sono difficili da capire a una seconda lettura, quando una modifica rompe qualcosa in modo inatteso, o prima di aggiungere una nuova funzionalità a un file esistente. Evita di rifare file che funzionano bene e vengono toccati raramente.

### Cos'è la tecnica Extract Method per i fogli di calcolo?

Extract Method significa dividere una formula complessa in più passaggi distribuiti su celle di supporto, ciascuna con un solo compito. Così ogni passaggio diventa leggibile e verificabile da solo.

### Come si eliminano le formule duplicate in Excel?

Usa XLOOKUP con restituzione multi-colonna (Excel 365 / Sheets) per estrarre più risultati con una sola formula, oppure crea un'unica cella di supporto con MATCH richiamata da tutte le formule INDEX, così mantieni una sola ricerca invece di molte.

### In cosa consiste la tecnica Replace Conditional?

Replace Conditional significa sostituire catene di IF annidati con alternative più pulite: la funzione IFS per una lettura piatta, oppure una VLOOKUP a corrispondenza approssimata su una tabella di riferimento, per spostare la logica fuori dalla formula e dentro dati verificabili.

### Il refactoring cambia il risultato di una formula?

No. La regola fondamentale del refactoring è che il comportamento esterno resta identico. Cambi la struttura, non il risultato. Se il refactoring cambia un valore in uscita, qualcosa è andato storto.

### Come aiutano gli intervalli denominati nel refactoring del codice in Excel?

Gli intervalli denominati permettono di dare etichette chiare a valori fissi come aliquote fiscali, ancore di data o tabelle di ricerca, e di richiamarli per nome invece che con valori scritti a mano. Quando il valore cambia, aggiorni un solo posto e tutte le formule si aggiornano di conseguenza.