Afisare toate randurile daca valoarea-parametru ramane necompletata

Doua add-onuri gratuite oferite de catre Microsoft ce completeaza functionalitatea Excel atat de bine incat incepend cu Excel 2013 Power Pivot vine preinstalat (doar trebuie activat) iar in Excel 2016 Power Query este inclus direct in interfata Excel (nu mai este add-on)
IPP
Moderator
Moderator
Mesaje: 3879
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Afisare toate randurile daca valoarea-parametru ramane necompletata

Mesaj de IPP » Mar Aug 06, 2019 2:33 pm

Buna ziua

Power Query din Excel 2016 / 365

Am creat, in fisierul atasat, un power query parametrizat simplu care afiseaza inregistrarile aferente unei selectii valori-parametru prealabile (vezi A2 din foaia Rezultat) urmata de comanda RefreshAll.

Intrebarea este cum se poate face ca, in cazul in care acea celula-parametru nu va avea informatie, comanda RefreshAll sa duca la afisarea intregii informatii (toate orasele, in cazul de fata). In acest moment fara o valoare in celula respectiva, refresh-ul nu aduce nimic drept rezultat.

Multumesc
IP

PS. In realitate, daca ar fi fost vorba despre o singura filtrare, la nivel de un singur camp, nu ar fi fost nicio problema (se putea face filtrare nu din power query ci din tabelul output). Dar nu este / nu va fi.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

IPP
Moderator
Moderator
Mesaje: 3879
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: Afisare toate randurile daca valoarea-parametru ramane necompletata

Mesaj de IPP » Mie Aug 07, 2019 11:57 am

Buna ziua

In final am procedat astfel:
-Am adus in power query o coloana calculata, numita pentruFiltrare, in care am pus o conditie: daca criteriul este null sa completeze cu null, in caz contrar sa completeze cu informatia identica din coloana Oras

-Am creat un nou pas (step) filtrand in coloana nou creata dupa orice criteriu existent (ex. Iasi)

-Am editat in cod inlocuind criteriul "fix" cu cel parametrizat

-Am sters coloana calculata din power query apoi Close and Load

IP
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Catalin B.
Moderator
Moderator
Mesaje: 767
Membru din: Vin Sep 09, 2011 4:05 pm
Localitate: Iaşi

Re: Afisare toate randurile daca valoarea-parametru ramane necompletata

Mesaj de Catalin B. » Dum Aug 18, 2019 9:34 am

Etapa de filtrare se poate scrie si altfel decat varianta produsa automat de interfata:
= Table.SelectRows(#"Changed Type", each if crtOras=null then true else [Oras] = crtOras)
In cazul in care criteriul este null, each true returneaza toate valorile din tabelul initial.
Probleme să fie, că soluţii se găsesc...

IPP
Moderator
Moderator
Mesaje: 3879
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: Afisare toate randurile daca valoarea-parametru ramane necompletata

Mesaj de IPP » Lun Aug 19, 2019 3:09 pm

Buna ziua

Da, o solutie mai simpla si mai buna, in urma careia codul arata asa:

let
Source = Excel.CurrentWorkbook(){[Name="dbValori"]}[Content],
#"Filtered Rows" = Table.SelectRows(Source, each if crtOras=null then true else [Oras] = crtOras)
in
#"Filtered Rows"

Multumesc
IP

Scrie răspuns

Înapoi la “Power Query & Power Pivot”