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
+1
dopo 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)+1
e copia in basso - Blocchi personalizzati →
LET + INDEX
con 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
100
conROWS(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
+1
alla 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.