Un raport standard în Power Query e o interogare fixă — filtrează aceleași date, de la aceeași sursă, cu aceleași condiții. Funcționează bine până când utilizatorul vrea să aleagă el luna, departamentul sau pragul de filtrare.
Power Query Parametrii rezolvă exact asta: utilizatorul modifică o celulă în Excel → interogarea se reconfigurează automat → Refresh → raport actualizat cu noii parametri.
Ce sunt parametrii Power Query
Un parametru Power Query e o variabilă cu un nume și o valoare — definită în Power Query Editor și referențiată în pași de interogare.
Tipuri suportate:
- Text
- Număr
- Dată
- Logic (True/False)
- Orice (Any)
Avantajul față de valori hardcodate: Schimbi valoarea parametrului → toate interogările care îl folosesc se actualizează la Refresh.
Metoda 1: Parametri definiți în Power Query Editor
Creare parametru
Power Query Editor → Acasă → Gestionare parametri → Parametru nou
Configurezi:
- Nume:
LunaSelectata - Tip: Număr
- Valoare curentă: 4 (Aprilie)
Utilizare în interogare
Filtru automat → Valoare personalizată → scrii LunaSelectata în loc de o valoare fixă.
Sau în codul M direct:
= Table.SelectRows(Sursa, each Date.Month([Data]) = LunaSelectata)
Limitare: schimbi parametrul doar din Power Query Editor
Utilizatorul trebuie să intre în editor pentru a schimba luna — nu practic.
Metoda 2: Parametri dintr-o celulă Excel (recomandat)
Aceasta e metoda reală pentru rapoarte interactive — parametrul vine direct dintr-o celulă Excel, editabilă de utilizator fără a deschide Power Query.
Pasul 1: Creezi tabelul de parametri în Excel
O foaie numită „Parametri” cu un Tabel Excel:
| Parametru | Valoare |
|---|---|
| Luna | 4 |
| An | 2026 |
| Prag_Valoare | 10000 |
| Departament | Vânzări |
Convertești la Tabel Excel (Ctrl+T) cu numele Tbl_Parametri.
Pasul 2: Imporți tabelul de parametri în Power Query
Date → Obținere date → Din tabel/interval → selectezi Tbl_Parametri.
În Power Query Editor, ai acum o interogare numită Parametri cu 4 rânduri.
Pasul 3: Creezi funcții de extragere pentru fiecare parametru
Creezi interogări separate pentru fiecare parametru:
// Interogarea "pLuna":
let
Sursa = Parametri,
Filtrat = Table.SelectRows(Sursa, each [Parametru] = "Luna"),
Valoare = Filtrat{0}[Valoare]
in
Number.From(Valoare)
// Interogarea "pDepartament":
let
Sursa = Parametri,
Filtrat = Table.SelectRows(Sursa, each [Parametru] = "Departament"),
Valoare = Filtrat{0}[Valoare]
in
Valoare
Pasul 4: Folosești parametrii în interogările de date
let
Sursa = Excel.Workbook(File.Contents("Vanzari.xlsx")),
Date = Sursa{[Item="Date"]}[Data],
Filtrat_Luna = Table.SelectRows(Date, each Date.Month([Data]) = pLuna),
Filtrat_An = Table.SelectRows(Filtrat_Luna, each Date.Year([Data]) = pAn),
Filtrat_Dept = Table.SelectRows(Filtrat_An, each [Departament] = pDepartament),
Filtrat_Valoare = Table.SelectRows(Filtrat_Dept, each [Valoare] >= pPrag_Valoare)
in
Filtrat_Valoare
Acum când utilizatorul schimbă „4″ în „5″ în celula Luna din foaia Parametri și dă Refresh — raportul arată datele pentru mai.
Parametrul ca cale de fișier: import dinamic
Utilizatorul schimbă calea folderului → interogarea importă dintr-o altă sursă:
// pCale = "C:\Rapoarte\2026\Mai\" (valoare din celula Parametri)
let
Sursa = Folder.Files(pCale),
// ... restul transformărilor
in
...
Schimbi luna în Parametri → importul se face din folderul lunii respective.
Dropdown Excel conectat la parametrii
Combini cu validarea datelor pentru o experiență complet user-friendly:
Pasul 1: Lista de opțiuni (luni, departamente)
Foaia Parametri → celula B3 (valoarea pentru Departament) → Date → Validare date → Listă → sursă: ={"Vanzari";"Marketing";"IT";"HR";"Financiar"}
Utilizatorul selectează din dropdown → Power Query citește valoarea.
Pasul 2: Buton de Refresh
Inserezi un buton (Dezvoltator → Inserare → Buton) cu macro:
Sub RefreshRaport()
Application.ScreenUpdating = False
ThisWorkbook.RefreshAll
Application.ScreenUpdating = True
MsgBox "Raport actualizat pentru " & Sheets("Parametri").Range("B3").Value, vbInformation
End Sub
Utilizatorul selectează departamentul, dă click pe buton → raport actualizat în câteva secunde.
Cazuri de utilizare reale
Raport de vânzări filtrat pe lună + regiune
Parametri: Luna (1-12) + An (2025/2026) + Regiune (Nord/Sud/etc.) Utilizatorul selectează combinația → Power Query returnează exact datele cerute → Pivot Table se actualizează.
Import dinamic pe baza perioadei
Fișierele de import sunt organizate pe luni: Vanzari_202601.csv, Vanzari_202602.csv etc.
Parametrul = pAnLuna (de ex. „202605″)
Cale = "C:\Rapoarte\Vanzari_" & pAnLuna & ".csv"
Sursa = Csv.Document(File.Contents(Cale))
Utilizatorul schimbă 202605 în 202606 → importul se face din fișierul lunii Iunie.
Prag de filtrare variabil
Raport cu comenzile peste o valoare minimă — utilizatorul decide pragul:
= Table.SelectRows(Date, each [Valoare] >= pPrag_Valoare)
Parametru pPrag_Valoare = 5.000 → raport cu comenzi ≥ 5.000 lei. Modificat la 50.000 → raport cu comenzi mari.
Optimizare: dezactivezi interogările de parametri din încărcare
Interogările de parametri (pLuna, pAn etc.) nu trebuie încărcate în Excel ca tabele — sunt doar valori intermediare.
Click dreapta pe interogare → Dezactivare încărcare. Rămân disponibile pentru alte interogări dar nu creează foi sau tabele suplimentare.
Concluzie
Parametrii Power Query transformă rapoartele dintr-un snapshot fix într-un instrument interactiv — utilizatorul alege perioada, filtrul sau sursa, dă Refresh, și primește raportul exact pe ce are nevoie. Diferența față de un raport fix: zero muncă repetitivă, zero solicitări IT pentru fiecare variație de raport.
La Excel Group implementăm sisteme de raportare cu Power Query parametrizat pentru firme din România și Moldova — rapoarte interactive configurabile de utilizator final. Contactează-ne.
Întrebări frecvente
Parametrii Power Query funcționează cu conexiuni la baze de date SQL?
Da — și e cel mai puternic caz de utilizare. Parametrul se injectează în query-ul SQL (cu atenție la SQL injection — folosești parametrii Power Query nativi, nu concatenarea de string-uri). Filtrarea se face la sursă, nu în Excel — mult mai rapid pe seturi mari.
Pot combina mai mulți parametri cu logică condițională?
Da, în M:
= if pDepartament = "Toate" then Date else Table.SelectRows(Date, each [Dept] = pDepartament)
Dacă utilizatorul selectează „Toate” din dropdown, filtrarea se dezactivează.
Câți parametri pot defini?
Tehnic nelimitat. Practic: 5-10 parametri e maximum pentru care UI-ul rămâne simplu de folosit. Dacă ai nevoie de mai mulți, consideră o pagină de configurare separată cu secțiuni grupate.

