Objedinjena lista proizvoda

Zamislite ovaj scenario: u Excel tabeli evidentirate kupce, navodeći njihovu šifru, a zatim proizvode koje oni koriste. Koji kupac koristi koje proizvode? Ovo možete da saznate ako podatke prebacite u pivot tabelu, pa onda da prikažete kupce, proizvode i broj proizvoda. Nedostatak ovakvog izveštaja je to što pivot tabele uvek vrše agregaciju podataka. Šta ako nam treba samo tabela u kojoj se nalaze šifre kupaca, u jednoj koloni, kao i objedinjena lista proizvoda u drugoj?

Moram da priznam da mi je kao rešenje prvo pala na pamet DAX funkcija CONCATENATEX. Ona je iterator, te dozvoljava da, red po red, generišemo objedinjenu listu proizvoda. Može li to jednostavnije? Naravno, uz upotrebu funkcija za rad sa dinamičkim nizovima!

Najpre, hajde da generišemo listu kupaca. To ćemo učiniti tako što iz prve kolone tabele preuzmemo jedinstvene vrednosti kupaca. Da bi lista izgledala lepše izvršićemo i njeno sortiranje:

=SORT(UNIQUE(A2:A11))

Sada imamo kriterijume za generisanje objedinjene liste proizvoda. Da bismo popunili listu potrebno je filtrirati vrednosti proizvoda na osnovu kriterijuma- šifre kupca. Dalje, ako želimo samo da dobijemo spojeni string sa oznakama proizvoda, filtriranu tabelu ćemo upotrebiti kao argument funkcije CONCAT. Ipak, čini mi se da je malo elegantnije rešenje da iskoristimo funkciju TEXTJOIN. Formula:

=TEXTJOIN(„,“;;FILTER($B$2:$B$11;$A$2:$A$11=D2))

Navedeni izraz izdvaja svaki pojedinačni proizvod koji koristi zadati kupac (D2), a zatim proizvode spaja u string u kome je naziv svakog od njih razdvojen zarezom.