Modulo Fattura Dinamico – Parte 1. No Code
In questa prima parte del tutorial impariamo a rendere dinamico il template della fattura utilizzando solo strumenti nativi di Excel: tabelle, menu a tendina e funzioni di ricerca.
Il file fornito è volutamente vuoto: saremo noi a popolarlo passo dopo passo.
1.1 Creare la tabella Clienti
- Seleziona il foglio"Clienti"l’ e poi l'intervallo dei clienti (Come in figura) e premi Ctrl + T
- EN-US: Home → Format as Table
ITA: Home → Formatta come tabella - Spunta:
EN-US: “My table has headers”
ITA: “La tabella ha intestazioni”
ℹ️ Nota: A questo punto molti potrebbero chiedersi perché, nel tutorial, dedico così tanta attenzione alle differenze tra le versioni Italiano ed EN‑US di Excel.
La risposta è semplice: per motivi personali utilizzo da sempre Excel in lingua inglese.
Inoltre — e questo riguarda soprattutto chi proseguirà con la parte dedicata alla programmazione — è importante sapere che molte funzioni usate nel codice VBA o nelle formule internazionali mantengono i nomi inglesi.
Funzioni come INDEX + MATCH, VLOOKUP, XLOOKUP, SUMIF, IF, COUNTIF e molte altre, che vedremo più avanti, corrispondono in italiano a INDICE + CONFRONTA, CERCA.VERT, CERCA.X, SOMMA.SE, SE, CONTA.SE, ecc.
Conoscere entrambe le versioni permette di lavorare senza confusione, seguire documentazione internazionale, leggere codice VBA più facilmente e comprendere tutorial provenienti da tutto il mondo.
Di seguito tutte le tabelle comparative per le funzioni utilizzate nella parte NO - CODE
🔍 Funzioni di ricerca e riferimento
➗ Funzioni matematiche e di calcolo
🔢 Funzioni logiche
🔤 Funzioni di testo (utili per formattare indirizzi, codici, ecc.)
📊 Funzioni per dashboard e analisi
🧮 Funzioni utili per il gestionale (numerazione, date, ecc.)
🧩 Funzioni avanzate (per utenti moderni)
Dopo la doverosa scarrella3. posizionati in un punto qualsiasi dentro la tabella, nella scheda in alto seleziona Table Design o voce attinente nella versione Italiana.
4. Spostati in alto a sinistra e Rinomina la tabella in tblClienti.
1.2 Creare la tabella Prodotti
Seleziona il foglio "Prodotti"
Ripeti gli stessi passaggi e rinomina la tabella in tblProdotti.
2. Menu a tendina per selezionare il Cliente (C7)
2.1 Preparare la colonna dei nomi
Assicurati che nella tabella tblClienti la colonna "B" sia correttamente etichettata come [RagioneSociale] ,(tutto attaccato).
2.2 Impostare la convalida dati
Selezionare la riga da C7 a I9, dal menù home -> Formati selezionare unisci e centra; ripetere la stessa operazione per C8:I8 e C9:I9
- Seleziona la cella C7.
- Vai su Data → Data Validation.
- Imposta Allow: List.
- Nel campo Source inserisci:
=Clienti!$B$2:$B$27
In questo caso(motivi didattici) ho selezionato un'intervallo piccolo, ma voi estendete anche a $B$10000, 50000 o anche più, secondo necessità.
Et Voilà, come per magia cliccando sulla freccetta si estenderà l'elenco a discesa con i nomi dei Clienti! Colgo l'occasione per farvi saper che i nomi sono fittizi(pura fantasia)!
🟦 SEZIONE 3 — Recuperare i dati del Cliente
3.1 Indirizzo (C8)
Versione moderna — XLOOKUP =XLOOKUP(C7;tblClienti[RagioneSociale];tblClienti[Indirizzo];"Cliente Non trovato";0)
Versione compatibile — INDEX + MATCH=INDEX(tblClienti[Indirizzo]; MATCH(C7; tblClienti[RagioneSociale]; 0))
🟦3.2 CAP + Città + Provincia in un’unica cella (C9)
XLOOKUP
=XLOOKUP(C7; tblClienti[RagioneSociale]; tblClienti[CAP]) & " " & XLOOKUP(C7; tblClienti[RagioneSociale]; tblClienti[Città]) & " (" & XLOOKUP(C7; tblClienti[RagioneSociale]; tblClienti[Provincia]) & ")"
In questa formula utilizziamo tre funzioni XLOOKUP per recuperare tre informazioni diverse dalla tabella clienti: CAP, Città e Provincia.
Ogni XLOOKUP restituisce un singolo valore, quindi per costruire una stringa completa come “38100 Trento (TN)” dobbiamo eseguire tre ricerche separate e poi concatenarle.
La chiave di ricerca è sempre la Ragione Sociale selezionata in C7.
La concatenazione con & ci permette di unire i risultati e aggiungere spazi e parentesi per ottenere un formato leggibile e professionale(Vedi figura sotto).
INDEX + MATCH -> INDICE + CONFRONTA per le versioni italiane
=INDEX(tblClienti[CAP]; MATCH(C7; tblClienti[RagioneSociale]; 0)) & " " & INDEX(tblClienti[Città]; MATCH(C7; tblClienti[Nome]; 0)) & " (" & INDEX(tblClienti[Provincia]; MATCH(C7; tblClienti[RagioneSociale]; 0)) & ")"
Crea il tuo sito web con Webador