Devi riempire rapidamente A1:A100 con la sequenza 1→10 che si ripete all’infinito? Qui trovi metodi affidabili per Excel 365/2021 e versioni precedenti: formule dinamiche, alternative senza SEQUENCE, varianti flessibili, soluzioni per tabelle, filtri, Power Query e perfino una macro VBA.
Perché la sequenza “1‑10” si ferma e come superarla
Il comando Home > Fill > Series (Riempimento > Serie) è pensato per proseguire una progressione (1,2,3…): non “ricomincia” da 1 dopo il 10. Per ottenere un ciclo infinito 1‑10 serve una logica che calcoli il resto (modulo) o richiami in loop un blocco di valori.
Soluzioni rapide (scegli in base alla tua versione)
| Scenario | Formula/Procedura | Come funziona |
|---|---|---|
| Excel 365 / Office 2021 (funzioni dinamiche) | IT locale (separatori “;”): =MOD(SEQUENCE(100)-1;10)+1 EN locale (separatori “,”): =MOD(SEQUENCE(100)-1,10)+1 Scrivila in A1: si “spilla” (spill) da sola fino a 100 righe. | SEQUENCE(100) genera 1…100 -1 trasforma in 0…99 MOD(...;10) produce 0…9 ripetuti +1 riporta a 1…10 ciclici Per adattarti ai dati, sostituisci 100 con ROWS(tabella) o COUNTA(colonna). |
| Versioni precedenti (senza SEQUENCE) | In A1 scrivi 1 In A2: =MOD(A1;10)+1 Trascina la maniglia di riempimento fino alla riga desiderata Oppure (senza cella di appoggio): =MOD(ROW(A1)-1;10)+1 e copia in basso. | MOD(...;10) restituisce il resto 0‑9; con +1 ottieni 1‑10. La versione con ROW() usa l’indice di riga, quindi non richiede valori iniziali. |
| Variante flessibile con LET (solo 365) | IT: =LET(seq;SEQUENCE(10); INDEX(seq; MOD(SEQUENCE(20;;0);10)+1)) EN: =LET(seq,SEQUENCE(10), INDEX(seq, MOD(SEQUENCE(20,,0),10)+1)) | seq memorizza il blocco 1‑10 SEQUENCE(20;;0) decide la lunghezza finale (20 → 2 cicli) INDEX richiama in loop i 10 elementi Cambia 20 per regolare quante ripetizioni vuoi. |
Spiegazioni passo‑passo e varianti utili
Excel 365/2021: SEQUENCE + MOD (la via più rapida)
La soluzione “spill” ti consente di compilare la colonna intera con una sola formula in A1:
=MOD(SEQUENCE(100)-1;10)+1
Sostituisci 100 con:
ROWS(Tabella1)per riadattarti automaticamente alla lunghezza di una Tabella (Ctrl+T)COUNTA(B:B)per seguire il numero di voci non vuote della colonna B
Generalizzare: qualunque blocco di lunghezza L, partendo da start
Se vuoi iniziare da 3 e ciclare 1‑10, usa:
=MOD(SEQUENCE(N)+3-2;10)+1
dove N è il numero di righe finali. Più in generale:
=MOD(SEQUENCE(N)+start-2; L)+1
Con L=10 e start=1 ottieni il classico 1→10.
Riempire per righe o per colonne
- Verticale (N righe, 1 colonna):
=MOD(SEQUENCE(N)-1;10)+1 - Orizzontale (1 riga, M colonne):
=MOD(SEQUENCE(1;M)-1;10)+1 - Griglia N×M:
=MOD(SEQUENCE(N;M)-1;10)+1(ripete 1‑10 lungo la direzione di “lettura” della spill)
Versioni precedenti di Excel: alternative solide senza SEQUENCE
Metodo “a cascata” con cella precedente
- A1 =
1 - A2 =
=MOD(A1;10)+1 - Trascina in basso fino alla riga desiderata
Metodo indipendente dalla cella precedente (basato sull’indice di riga)
Scrivi in A1 e copia in basso:
=MOD(ROW(A1)-1;10)+1
In questo modo ogni riga “sa” da sola quale numero mostrare, senza catene di dipendenza. Se la tua installazione è localizzata in italiano, ROW è spesso RIF.RIGA:
=MOD(RIF.RIGA(A1)-1;10)+1
Variante flessibile con LET + INDEX (365): ripeti qualsiasi elenco
Vuoi ripetere un blocco arbitrario (anche testi, non solo numeri)? Memorizzalo in una variabile e usa l’indice modulo:
=LET(seq;{"Lun";"Mar";"Mer";"Gio";"Ven"}; N;50; INDEX(seq; MOD(SEQUENCE(N)-1; ROWS(seq))+1))
Questa tecnica è perfetta per cicli come giorni della settimana, codici turno, pattern 1‑5‑1‑5 ecc.
Adattare il riempimento ai dati reali
Auto‑adattamento alla lunghezza di una Tabella
Se i tuoi dati sono in una Tabella chiamata Tabella1, la sequenza si aggiorna quando aggiungi/elimini righe:
=LET(n;ROWS(Tabella1); MOD(SEQUENCE(n)-1;10)+1)
Seguire un’altra colonna (non vuoti)
Hai la colonna B con i dati e vuoi produrre il numero ciclico solo per quelle righe?
=LET(n;COUNTA(B:B); MOD(SEQUENCE(n)-1;10)+1)
Per gruppi: ricominciare da 1 ogni volta che cambia la categoria
Nella colonna B hai una categoria (es. “Cliente”). In C vuoi 1‑10 che si ripete per ciascuna categoria lungo le righe ordinate:
=MOD(COUNTIF($B$2:B2; B2)-1;10)+1
Questa formula usa il conteggio progressivo per ciascun valore di B e applica il modulo 10.
Solo righe visibili (filtrate)
Per numerare 1‑10 ripetuti ignorando le righe nascoste, usa SUBTOTAL come contatore visibile (qui supponiamo che la colonna B contenga i dati non vuoti):
=MOD(SUBTOTAL(3; $B$2:B2)-1;10)+1
In EN: =MOD(SUBTOTAL(3, $B$2:B2)-1,10)+1. Il codice funzione 3 conta le celle non vuote considerando solo le righe visibili.
Metodi alternativi quando non vuoi formule
Trascinamento “Copia celle” (ripete il blocco 1‑10)
- Scrivi 1…10 in A1:A10.
- Seleziona A1:A10.
- Trascina la maniglia di riempimento con tasto destro verso il basso.
- Rilascia e scegli Copia celle.
Excel replicherà ciclicamente il blocco di 10 valori. È veloce, ma resta un’operazione manuale.
Power Query: robusto su dataset molto grandi
- Trasforma l’intervallo in Tabella (Ctrl+T) e caricala in Power Query.
- In PQ: Aggiungi colonna > Indice > Da 0.
- Aggiungi una Colonna personalizzata con la formula:
1 + Number.Mod([Index], 10). - Rimuovi l’Index (se non serve) e Chiudi & Carica.
Quando la Tabella cresce, la colonna calcolata si aggiorna con un refresh.
Macro VBA (facoltativa) per riempimenti istantanei
Se usi spesso questo schema, una macro può evitare formule e trascinamenti:
Sub RiempieSequenzaCiclica()
Dim rng As Range, L As Long, i As Long
Set rng = Range("A1:A100") ' Modifica il target
L = 10 ' Lunghezza del ciclo
For i = 0 To rng.Rows.Count - 1
rng.Cells(i + 1, 1).Value = 1 + (i Mod L)
Next i
End Sub
Vantaggi: valori “fissi” (niente ricalcolo), velocissima su grandi range.
Esempi pronti da incollare
Classic 365: verticale per il numero di righe occupate in B
=LET(n;COUNTA(B:B); MOD(SEQUENCE(n)-1;10)+1)
Classic 365: orizzontale su 30 colonne
=MOD(SEQUENCE(1;30)-1;10)+1
Versioni senza SEQUENCE: indipendente dalla riga precedente
=MOD(ROW(A1)-1;10)+1
Offset di partenza (inizia da 3)
=MOD(SEQUENCE(100)+3-2;10)+1
Ripetere una lista personalizzata
=LET(seq;{1;2;3;4;5;6;7;8;9;10}; N;100; INDEX(seq; MOD(SEQUENCE(N)-1; ROWS(seq))+1))
Best practice e consigli operativi
- Evita trascinamenti inutili: con le formule “spill” basta digitare in A1.
- Preferisci tabelle Excel:
ROWS(Tabella)rende l’output reattivo all’aggiunta/eliminazione di righe. - Blocca come valori se devi inviare il file: Copia > Incolla valori per congelare il risultato.
- Localizzazione: se vedi
#NOME?, controlla nomi funzione (es.MOD↔RESTO,ROW↔RIF.RIGA) e separatori. - Prestazioni: il metodo con
ROW()è leggero anche su file datati; per dataset enormi valuta Power Query o una macro.
Errori comuni (e come evitarli)
- Serie che continua 11,12… Hai usato “Riempimento serie” o trascinato 1…10 senza opzione “Copia celle”: cambia metodo o usa una formula.
- Ottieni 0‑9 al posto di 1‑10 Ti sei dimenticato
+1dopo ilMOD. - La sequenza non si allunga quando aggiungi righe Con
SEQUENCE(100)la lunghezza è fissa; passa aROWS(Tabella)o a una formula che dipende dai dati. - Messaggi di errore dovuti alla lingua In italiano:
SEQUENZA(nonSEQUENCE),RESTO(nonMOD),INDICE(nonINDEX),CONTA.VALORI(nonCOUNTA),RIF.RIGA(nonROW).
Tabella di mapping EN ↔ IT dei nomi funzione usati
| EN | IT | Note |
|---|---|---|
| SEQUENCE | SEQUENZA | Disponibile da 365/2021 |
| MOD | RESTO | Resto della divisione |
| INDEX | INDICE | Estrae il k‑esimo elemento |
| LET | LET | Stessa grafia in IT |
| ROW | RIF.RIGA | Indice di riga (1‑based) |
| ROWS | RIGHE | Conta righe di un intervallo |
| COUNTA | CONTA.VALORI | Conta non vuoti |
| COUNTIF | CONTA.SE | Conteggio condizionale |
| SUBTOTAL | SUBTOTALE | 103/3 per “conta non vuote” |
Domande frequenti
Come cambio la lunghezza del blocco?
Sostituisci 10 con la lunghezza desiderata L. Esempio: =MOD(SEQUENCE(120)-1;7)+1 produce 1‑7 ripetuti.
Come genero due cicli affiancati?
Usa due colonne con offset diverso, oppure una spill su più colonne: =MOD(SEQUENCE(50;2)-1;10)+1 (50 righe × 2 colonne).
Posso mescolare numeri e testi?
Sì, con l’approccio LET + INDEX usando un vettore costante, ad esempio {"A";"B";1;2;3}.
La sequenza cambierà dopo un ordinamento?
Sì, perché è ricalcolata dalle formule. Se vuoi “congelarla”, esegui Copia > Incolla valori dopo averla generata.
È possibile numerare solo le righe visibili filtrate a blocchi di 10?
Sì, vedi la formula con SUBTOTAL sopra: usa il conteggio progressivo delle sole righe visibili e applica il modulo 10.
Checklist finale di scelta rapida
- Excel 365/2021 →
=MOD(SEQUENCE(N)-1;10)+1 - Excel “storici” →
=MOD(ROW(A1)-1;10)+1e copia in basso - Blocchi personalizzati →
LET + INDEXcon un vettoreseq - Dataset enormi → Power Query (Index +
Number.Mod) o macro VBA - Sequenza fissa da distribuire → riempi, poi “Incolla valori”
Appendice: guida operativa completa (passo‑passo)
Obiettivo
Riempire A1:A100 con la serie 1→10 ripetuta senza interventi manuali.
Soluzione 365 (dinamica)
- In A1 digita
=MOD(SEQUENCE(100)-1;10)+1. - Premi Invio: la formula genera automaticamente 100 righe.
- Per adattarti ai dati, sostituisci
100conROWS(Tabella1)oCOUNTA(B:B).
Soluzione classica (senza SEQUENCE)
- In A1:
=MOD(ROW(A1)-1;10)+1. - Copia verso il basso fino alla riga 100.
Controlli rapidi
- La riga 1 mostra 1? La riga 10 mostra 10? La riga 11 torna a 1? Se sì, tutto ok.
- Se vedi 0‑9, aggiungi
+1alla formula modulo.
In sintesi
Per ripetere 1‑10 in una colonna senza interruzioni, il binomio SEQUENCE+MOD (365/2021) è il più rapido e pulito; nelle versioni precedenti l’uso di ROW+MOD risolve con un’unica formula da copiare. Se ti serve flessibilità massima, LET+INDEX consente di ripetere qualsiasi lista (anche testuale), mentre Power Query e VBA sono ideali quando vuoi prestazioni e valori stabili su milioni di righe.
Esempio completo pronto all’uso (A1:A100)
365/2021:
=MOD(SEQUENCE(100)-1;10)+1
Senza SEQUENCE:
=MOD(ROW(A1)-1;10)+1
Tip finale: se lavori spesso con cicli di lunghezza diversa, definisci un Nome (Formule > Gestione nomi) per L e usa =MOD(SEQUENCE(N)-1;L)+1: cambi una sola volta il valore e tutte le formule si aggiornano.
