Forum Discussion
Single product on document
- 3 years ago
Hi Anonymous ,
I've gone about this a different way from before due to the extra flexibility you need around selecting different items. As you need this to be dynamic, I've done it in DAX instead of Power Query.
I've called your example data 'factSales', which you will see referenced below, which you can replicate with the following PQ code:
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("zVjNbttGEH6VhYDeVIc/oiwdV+Ra2pLcZXbJMmQaGHYNBEUCJ0iQS25G/Qa5FH2VHGO9V2eWS8qm5J+EbNGDLZrWfJyfb2a+5cuXk4yqZ3Pf9YLJdKIzXs58uIBPSSKmM6ZoJDXRdW7vwocLP958upy8mu7Mj+Hm63dnb98sPbiiYCgTojPF83oKNyLFRcytse/fNXaDIcbNky/OLtHxnK45zVmSMFITLTVLSUjVSgqqKEZAdV4RTlIaUyVFZTFn7l1MJxgf0/PHx9zFPjPVo+sNy3NOSoTkjGRM5xIeoIpYJjfXh4Ex5Yvj6eKOs54BvnztLrAgKVM8pEKC2faKnsItQTP5CyNrqW6uQ2bdc+cH3FtL/B0riDCTKY+kkmWFPvFQ5rlxqi6yNkKvV13PMY6cf/qAHoUbxjRbFWrNFBKjueqyc9x7vP/jts6iTcD8TgJqkiYs5hDMI6no4y0N3ltDdR2ruorY9iqmABgXKqyhHERQInWuGkKQ1eo51kvVLL651jv6e/8RsNvMAQ+ZtWFcsJgJ4kwDkpAVC+uY9gZCMKq57wwy94Y93U6zofR3DcrnS6SfljEpq5DrmIoKOwEaffsn1IfMHAdI1XyFQ2vqDY1bSG/Wc8y1jpnIdJVRqC3VmgIfWcLE+ql8dJd23LtOO+4zWiRUMEVWRX70+MQfASEYjIA3Lz6+MQ1+oqocEug5DmYhkhHFP6El5IrL8t5ENJPufdC6sC64EExrSxQSOI6pzi037unBQRjuYgQ/TEJFzd0APSohBWRN62cCfgH7/cRm1DKk5qno0uL0iNa4Ayv5GIuz5gL8YCcMdpYCxhpPaBLLjYQNlsrQAGEq5/7dTeIj+vnl2fvf56fujrM1ZwksO6KZCDdA4STf0EKbbzydv7D53l0YT1P+gmhszpyYwrP4FgVKClOx3IV6aNCNLSDmzeo5MxyHiLngiFdXAoYuNjnDhZjyVJ4KVuKChKxk3TD2euF6jSB5P+/YoXi6YrDBRMsP39/jx95Mnv1/UOwke/vuAi9AagKvEhmBNvjtk+OYAWxuVs/KSh2FBexcJXhYd5OxLxRGxrMzKcAot1+rkrOQ8IxiG923RHoc8N2WV9gX2yup5fZvSBb9NaEvOnKlha5/TrmMpniJbNuomorJgQ09Wx5YcqbdZ9gNGcs0B/+8B7rcO7BlTZfPEav89iWC6m2/yu3VzXUUy5Le2+smYu+AQ0ZwIV0bgUVOFBVh0UTR01zLg/vyh82Xg8yt5gfz+c48k8n3Pfp4Z4sMjGX9hCe3aqNRK2pFc0pAGShhxEGa3K84evKgU634Cac3BfsDznEyy7gk8weR+pvVDsUPf2Ba1vI0lDqVkA6eG3I+eCRzuvOc2xivEimjCoamycEdW6+fStt3/l7fPVl5YjEGioIRIPzBEN7cVhP/mdA8Z48J0P6AWA4EMAe488+f0BEl9bcv26ujut19MKt8q0nsAQ5DnfVPkk47pExJmyGVwgCEQfWQHjkksYbDuME43iwsjGfoito+B0WPBQYpTxY/3QPTE1lG89UxSwzK84JpGvEkoaSEASxLLpDpEYgHCkrh5i/dAe3Nn8ACmWwLGm7gnPcYSNBnCxbbyPHZwnYYaTsw0zXDbSnYrWbcl+eHxtGoiK1K/vDZpCyHSalsoBUe6vd3Zl8mzDoCYM5yCT4QHW5KlmVMm+35HTzwFmOiOc3rEhMZdBTsALYqElzCNcgGEAVx/23J3tR2hiJ4s250m3VsJYHOZRgT3Cc5XzMjCo4mT1UF/wLkYjL4xVIwGMLubSDjskEpGY71GrY+HMUjGKxHBynZ31fBeDAjHv7GgXIbhfnRrMPmhBYjLUHd2IOPvdmF1X/FGQwFaLcohtJpIv9BMWTo9uof", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [DokumentTow = _t, IndeksTow = _t, Nazwa = _t, GrupaAdm = _t, Ilosc = _t, Sprzedaz = _t]), repCommaDecimal = Table.ReplaceValue(Source,",",".",Replacer.ReplaceText,{"Sprzedaz"}), chgTypes = Table.TransformColumnTypes(repCommaDecimal,{{"DokumentTow", type text}, {"IndeksTow", type text}, {"Nazwa", type text}, {"GrupaAdm", type text}, {"Ilosc", Int64.Type}, {"Sprzedaz", type number}}) in chgTypesYou can delete the 'repCommaDecimal' step to return to your regional number formats.
1) I set up a disconnected product table (nazwaDisc) in Power Query, like this:
let Source = Table.Distinct(Table.SelectColumns(factSales, "Nazwa")) in Source2) I sent both tables to the data model, ensuring that is NO relationship between them (PBI might do this automatically when loaded, so make sure to delete if it does).
3) I created a basic measure to count items sold:
_noofItemsSold = SUM(factSales[Ilosc])Then I created the following measure that will count all items on all transactions that contain the item selected from the disconnected product table:
_noofItemsSoldWithSelection = CALCULATE( [_noofItemsSold], CALCULATETABLE( VALUES(factSales[DokumentTow]), INTERSECT( ALL(factSales[Nazwa]), VALUES(NazwaDisc[Nazwa]) ) ) )This gives me the following output:
I've attached my PBIX below so you can have a play with it and see how it's all set up.
Pete
Try copying and pasting your Excel table into Power Query, like this:
Copy your Excel table, go to the Home tab > Enter Data > paste into there.
Then open the Advanced Editor for that query, copy everything in there, and paste into a code window here ( </> button ).
Pete
DokumentTowIndeksTowNazwaGrupaAdmIloscSprzedaz
| PAR/63125 | SPIW43 | PIWO DESPERADOS SZT | PIWO | 1 | 26,9 |
| PAR/63127 | goalk92 | APEROL SPRITZ, | DRINKI | 1 | 33,9 |
| PAR/63115 | goalk92 | APEROL SPRITZ, | DRINKI | 1 | 33,9 |
| PAR/63117 | godan3 | TAGIATELLE Z SOSEM CARBONARA | PASTY I MAKARONY | 1 | 41,9 |
| PAR/63105 | godan3 | TAGIATELLE Z SOSEM CARBONARA | PASTY I MAKARONY | 1 | 41,9 |
| PAR/63123 | godan3 | TAGIATELLE Z SOSEM CARBONARA | PASTY I MAKARONY | 1 | 41,9 |
| PAR/63117 | godan4 | SPAGHETTI W SOSIE PESTO Z RUKOLĄ | PASTY I MAKARONY | 2 | 87,8 |
| PAR/63122 | gong18 | AMERICANO MAŁA_ | NAPOJE GORĄCE | 1 | 16,9 |
| PAR/63117 | GO7 | KREM POMIDOROWY Z RICOTTĄ | ZUPY | 1 | 23,9 |
| PAR/63120 | gobur2 | CHEESEBURGER, | BURGERY | 1 | 47,9 |
| PAR/63113 | gobur2 | CHEESEBURGER, | BURGERY | 1 | 47,9 |
| PAR/63108 | gong16 | AMERICANO Z MLEKIEM MAŁA_ | NAPOJE GORĄCE | 1 | 17,9 |
| PAR/63109 | gol15 | SKRZYDEŁKA Z KURCZAKA NA OSTR Z SOS BBQ | PRZEKĄSKI | 1 | 32,9 |
| PAR/63109 | gol15 | SKRZYDEŁKA Z KURCZAKA NA OSTR Z SOS BBQ | PRZEKĄSKI | 1 | 32,9 |
| PAR/63113 | PI24 | HEINEKEN 0,5 L BECZKA | PIWO | 1 | 25,9 |
| PAR/63113 | PI24 | HEINEKEN 0,5 L BECZKA | PIWO | 1 | 25,9 |
| PAR/63130 | PI24 | HEINEKEN 0,5 L BECZKA | PIWO | 1 | 25,9 |
| PAR/63123 | PI24 | HEINEKEN 0,5 L BECZKA | PIWO | 1 | 25,9 |
| PAR/63127 | gong18 | AMERICANO MAŁA_ | NAPOJE GORĄCE | 1 | 16,9 |
| PAR/63111 | gozn2 | SOK WYCISKANY POMARAŃCZA 400 ML | SOKI I SHAKE | 1 | 24,9 |
| PAR/63121 | gong24 | SYPANA ASSAM MELENG | NAPOJE GORĄCE | 1 | 17,9 |
| PAR/63119 | SPIW10 | PIWO PAULANER BUT. SZT | PIWO | 1 | 26,9 |
| PAR/63119 | SPIW10 | PIWO PAULANER BUT. SZT | PIWO | 1 | 26,9 |
| PAR/63115 | SPIW10 | PIWO PAULANER BUT. SZT | PIWO | 1 | 26,9 |
| PAR/63111 | dskr2 | FRYTKI 200G | DODATKI SKROBIOWE | 1 | 17,9 |
| PAR/63112 | gop5 | PIWO GUINNESS BECZKA 500ML | PIWO | 1 | 32,9 |
| PAR/63109 | gop5 | PIWO GUINNESS BECZKA 500ML | PIWO | 1 | 32,9 |
| PAR/63118 | gop5 | PIWO GUINNESS BECZKA 500ML | PIWO | 1 | 32,9 |
| PAR/63105 | SNZI159 | WODA GAZ/NGAZ 0,3L SZT | NAPOJE ZIMNE | 1 | 10,9 |
| PAR/63128 | goalk70 | GIN BEEFEATER 40ML | ALKOHOLE MOCNE | 2 | 63,8 |
| PAR/63131 | bnapc6_1 | SYPANA ZIELONA SENCHA ALTHAUS_1 | NAPOJE GORĄCE | 1 | 17,9 |
| PAR/63119 | godod28 | MIX SAŁAT DODATEK | DODATKI WARZYWNE | 1 | 12,9 |
| PAR/63113 | godan3 | TAGIATELLE Z SOSEM CARBONARA | PASTY I MAKARONY | 1 | 41,9 |
| PAR/63106 | goba15 | PANINI Z SZYNKĄ I SEREM MIMO_NEW | KANAPKI | 1 | 27,9 |
| PAR/63125 | gop6 | PIWO GRIMBERGEN BECZKA 330ML | PIWO | 1 | 25,9 |
| PAR/63114 | gop6 | PIWO GRIMBERGEN BECZKA 330ML | PIWO | 1 | 25,9 |
| PAR/63114 | gop6 | PIWO GRIMBERGEN BECZKA 330ML | PIWO | 1 | 25,9 |
| PAR/63121 | golod1 | DESER LODOWY' | DESERY/WYR.CUKIERNICZE | 1 | 23,9 |
| PAR/63121 | golod1 | DESER LODOWY' | DESERY/WYR.CUKIERNICZE | 1 | 23,9 |
| PAR/63110 | PI56 | ŻYWIEC IPA 0,3 L BECZKA | PIWO | 1 | 21,9 |
| PAR/63131 | godan2 | ŁOSOŚ GRAVLAX Z SOSEM MUSZ-MIOD, MUSEM CHRZAN | PRZEKĄSKI | 1 | 49,9 |
| PAR/63123 | SNZI149 | PEPSI 0,2 SZT | NAPOJE ZIMNE | 1 | 12,9 |
| PAR/63130 | goalk63 | WÓDKA ŻOŁĄDKOWA 40ML | ALKOHOLE MOCNE | 1 | 22,9 |
| PAR/63123 | gobur5 | BURGER FRANCUSKI | BURGERY | 1 | 49,9 |
| PAR/63111 | gobur5 | BURGER FRANCUSKI | BURGERY | 1 | 49,9 |
| PAR/63119 | gobur5 | BURGER FRANCUSKI | BURGERY | 1 | 49,9 |
| PAR/63105 | gobur6 | BURGER POLSKI | BURGERY | 1 | 49,9 |
| PAR/63119 | gobur7 | BURGER SER KOZI | BURGERY | 1 | 49,9 |
| PAR/63107 | gong4 | HERBATA CZARNA 400ML_ | NAPOJE GORĄCE | 1 | 14,9 |
| PAR/63108 | gong8 | ESPRESSO DOPPIO 60ML_ | NAPOJE GORĄCE | 1 | 16,9 |
| PAR/63113 | godri5 | GO_COSMOPOLITAN | DRINKI | 1 | 33,9 |
| PAR/63105 | goalk1 | GO_BLOODY MARY | DRINKI | 1 | 29,9 |
| PAR/63110 | PI53 | ŻYWIEC IPA 0,5 L BECZKA | PIWO | 1 | 25,9 |
| PAR/63119 | dskr2 | FRYTKI 200G | DODATKI SKROBIOWE | 1 | 17,9 |
| PAR/63119 | dskr2 | FRYTKI 200G | DODATKI SKROBIOWE | 1 | 17,9 |
| PAR/63113 | dskr2 | FRYTKI 200G | DODATKI SKROBIOWE | 1 | 17,9 |
| PAR/63126 | gong1 | LATTE MAŁA_ | NAPOJE GORĄCE | 1 | 19,9 |
| PAR/63129 | gong1 | LATTE MAŁA_ | NAPOJE GORĄCE | 1 | 19,9 |
| PAR/63117 | bzu6 | ROSÓŁ.Z MAKARONEM 300ML | ZUPY | 2 | 47,8 |
| PAR/63120 | SNZI153 | PEPSI MAX 0,2L SZT | NAPOJE ZIMNE | 1 | 12,9 |
| PAR/63109 | SNZI153 | PEPSI MAX 0,2L SZT | NAPOJE ZIMNE | 1 | 12,9 |
| PAR/63115 | SNZI153 | PEPSI MAX 0,2L SZT | NAPOJE ZIMNE | 1 | 12,9 |
| PAR/63108 | SNZI210 | SOK TOMA 200 ML 8% | NAPOJE ZIMNE | 1 | 10,9 |
| PAR/63118 | ZKEL10 | QUESADILLA WOŁOWINA | DANIA MIĘSNE | 1 | 49,9 |
| PAR/63115 | ZKEL20 | NACHOS WOŁOWINA | DANIA MIĘSNE | 1 | 59,9 |
| PAR/63127 | SPIW148 | PIWO ŻYWIEC PSZENICZNE IPA 0,5 L SZT | PIWO | 1 | 24,9 |
| PAR/63108 | SPIW148 | PIWO ŻYWIEC PSZENICZNE IPA 0,5 L SZT | PIWO | 1 | 24,9 |
| PAR/63118 | goprz10 | TATAR WOŁOWY, | PRZEKĄSKI | 1 | 43,9 |
| PAR/63124 | SNZI155 | TONIC SCHWEPPES 0,2 L SZT | NAPOJE ZIMNE | 1 | 12,9 |
| PAR/63128 | SNZI155 | TONIC SCHWEPPES 0,2 L SZT | NAPOJE ZIMNE | 1 | 12,9 |
| PAR/63107 | GO10 | ZUPA CEBULOWA Z GRZANKĄ | ZUPY | 1 | 16,9 |
| PAR/63110 | GO10 | ZUPA CEBULOWA Z GRZANKĄ | ZUPY | 1 | 16,9 |
| PAR/63124 | goalk111 | WÓDKA STOCK PRESTIGE 40ML. | ALKOHOLE MOCNE | 1 | 22,9 |
| PAR/63124 | goalk111 | WÓDKA STOCK PRESTIGE 40ML. | ALKOHOLE MOCNE | 1 | 22,9 |
| PAR/63128 | GO7 | KREM POMIDOROWY Z RICOTTĄ | ZUPY | 1 | 23,9 |
| PAR/63125 | GO7 | KREM POMIDOROWY Z RICOTTĄ | ZUPY | 1 | 23,9 |
| PAR/63107 | goprz9 | KREWETKI Z KOLENDRĄ. | PRZEKĄSKI | 1 | 45,9 |
| PAR/63115 | goprz9 | KREWETKI Z KOLENDRĄ. | PRZEKĄSKI | 1 | 45,9 |
| PAR/63115 | SNZI159 | WODA GAZ/NGAZ 0,3L SZT | NAPOJE ZIMNE | 1 | 10,9 |
| PAR/63128 | SNZI159 | WODA GAZ/NGAZ 0,3L SZT | NAPOJE ZIMNE | 1 | 10,9 |
| PAR/63110 | gos13 | SAŁATKA CEZAR_NEW | SAŁATKI | 1 | 41,9 |
| PAR/63115 | gos13 | SAŁATKA CEZAR_NEW | SAŁATKI | 1 | 41,9 |
| PAR/63116 | gong9 | ESPRESSO 30ML_ | NAPOJE GORĄCE | 1 | 12,9 |
- Anonymous3 years agoNot applicable