Excel: riempire automaticamente una sequenza 1‑10 ripetitiva (SEQUENCE, MOD, LET)

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.

Indice

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)

ScenarioFormula/ProceduraCome 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

  1. A1 = 1
  2. A2 = =MOD(A1;10)+1
  3. 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)

  1. Scrivi 1…10 in A1:A10.
  2. Seleziona A1:A10.
  3. Trascina la maniglia di riempimento con tasto destro verso il basso.
  4. 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

  1. Trasforma l’intervallo in Tabella (Ctrl+T) e caricala in Power Query.
  2. In PQ: Aggiungi colonna > Indice > Da 0.
  3. Aggiungi una Colonna personalizzata con la formula: 1 + Number.Mod([Index], 10).
  4. 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. MODRESTO, ROWRIF.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 il MOD.
  • La sequenza non si allunga quando aggiungi righe Con SEQUENCE(100) la lunghezza è fissa; passa a ROWS(Tabella) o a una formula che dipende dai dati.
  • Messaggi di errore dovuti alla lingua In italiano: SEQUENZA (non SEQUENCE), RESTO (non MOD), INDICE (non INDEX), CONTA.VALORI (non COUNTA), RIF.RIGA (non ROW).

Tabella di mapping EN ↔ IT dei nomi funzione usati

ENITNote
SEQUENCESEQUENZADisponibile da 365/2021
MODRESTOResto della divisione
INDEXINDICEEstrae il k‑esimo elemento
LETLETStessa grafia in IT
ROWRIF.RIGAIndice di riga (1‑based)
ROWSRIGHEConta righe di un intervallo
COUNTACONTA.VALORIConta non vuoti
COUNTIFCONTA.SEConteggio condizionale
SUBTOTALSUBTOTALE103/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 personalizzatiLET + INDEX con un vettore seq
  • 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)

  1. In A1 digita =MOD(SEQUENCE(100)-1;10)+1.
  2. Premi Invio: la formula genera automaticamente 100 righe.
  3. Per adattarti ai dati, sostituisci 100 con ROWS(Tabella1) o COUNTA(B:B).

Soluzione classica (senza SEQUENCE)

  1. In A1: =MOD(ROW(A1)-1;10)+1.
  2. 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.

Indice