Modelul de numărare distinctă înrudit este util ori de câte ori aveți unul sau mai multe tabele de date legate de o dimensiune și trebuie să efectuați numărul distinct de valori ale coloanelor într-un tabel de dimensiuni, luând în considerare numai elementele legate de tranzacțiile din tabelul de date. În scopuri demonstrative, utilizăm numărul distinct al denumirii produsului într-un model cu două tabele de date: Vânzări și Chitanțe.
Deoarece numele produsului nu este unic - am introdus în mod artificial nume duplicate eliminând descrierea culorii din numele produsului - nu funcționează un număr simplu distinct al cheii produsului în tabelul Vânzări sau Chitanțe. În cele din urmă, arătăm cum să calculăm numărul distinct de nume de produse care apar în ambele tabele și în cel puțin unul dintre cele două.
Coloana Produs [Nume produs] nu este unică în tabelul Produs și avem nevoie de un număr distinct de nume de produse care au tranzacții de vânzare aferente. Modelul conține două tabele cu tranzacții legate de produse: Vânzări și Chitanțe. Figura 1 prezintă acest model de date.
figura 1 Modelul de date conține două tabele de fapt: Vânzări și Chitanțe.
Pe baza acestui model, dorim să calculăm numărul distinct de nume de produse care apar:
- În vânzări.
- În chitanțe.
- Atât în vânzări, cât și în chitanțe
- În cel puțin una dintre vânzări și chitanțe
Raportul este vizibil în Figura 2.
Figura 2 Raportul prezintă cele patru măsuri prezentate în model.
Codul pentru primele două măsuri este următorul:
Folosind SUMARIZARE, măsurile # Produse din vânzări și # Produse din încasări recuperează numele distincte ale produselor la care se face referire în tabelul relevant. SUMX numără doar numărul acestor produse și este utilizat în loc de COUNTROWS sau DISTINCTCOUNT din motive de performanță - mai multe detalii în articolul Analiza performanței DISTINCTCOUNT în DAX.
Deși este mai lungă decât o soluție care utilizează DISTINCTCOUNT și filtrare încrucișată bidirecțională, această versiune a codului este mai rapidă în cel mai frecvent caz - în care numărul de produse este semnificativ mai mic decât numărul de tranzacții.
NOTĂ Sintaxa naturală pentru calcularea variabilei Rezultat în măsurile # Produs din vânzări și # Produs din încasări ar trebui să utilizeze COUNTROWS. Versiunea SUMX este sugerată numai din motive de performanță în măsurile simple. Următoarele măsuri ale acestui model utilizează COUNTROWS deoarece nu ar exista niciun avantaj în utilizarea SUMX în expresii mai complexe.
Formularea utilizând SUMMARIZE și COUNTROWS poate fi ușor extinsă pentru a se potrivi următoarelor formule care produc intersecția (# Produse din ambele) sau unirea (# Produse din oricare) a denumirilor produselor:
Am furnizat exemple pentru INTERSECT și UNION. Dar modelul poate fi ușor adaptat pentru a efectua calcule mai complexe. Ca un exemplu suplimentar, măsura # Produs în vânzări și nu în încasări calculează numărul de nume de produse care există în vânzări, dar nu și în încasări, utilizând funcția set EXCEPT în loc de funcțiile INTERSECT sau UNION utilizate în măsurile anterioare:
Rezultatul măsurii # Produs în vânzări și nu în încasări este vizibil în Figura 3.
Figura 3 Măsura # Produs în vânzări și nu în încasări contează produsele prezente în vânzări, dar nu și în încasări.
Modelul poate fi extins pentru a calcula numărul distinct al oricărei coloane dintr-un tabel care poate fi atins printr-un lanț de relații mai multe la unu din tabelele de fapte. Acest lucru se datorează faptului că SUMMARIZE poate grupa după oricare dintre acele coloane.
Creează un rezumat al tabelului de intrare grupat după coloanele specificate.
REZUMAT (
[, [, [] [, [] [, [, [] [, [] [,…]]]]]]]] SUMXReturnează suma unei expresii evaluate pentru fiecare rând dintr-un tabel.
SUMX (
Numără numărul de rânduri dintr-un tabel.
COUNTROWS (
Numără numărul de valori distincte dintr-o coloană.
DISTINCTCOUNT () INTERSECT
Returnează rândurile tabelului din stânga care apar în tabelul din dreapta.
INTERSECT (,) UNION
Returnează uniunea tabelelor ale căror coloane se potrivesc.
UNIUNEA (
Returnează rândurile tabelului din stânga care nu apar în tabelul din dreapta.
Acest model este conceput pentru Power BI/Excel 2016-2019. Este disponibilă și o versiune alternativă pentru Excel 2010-2013.
Acest model este inclus în cartea DAX Patterns, Ediția a doua.
- Modele de consum gratuit de ceai cu text complet fără nutrienți în raport cu calitatea dietei la copii și
- Ulei organic de semințe de in Softgels Up Dimensiune 240 număr; Vitalitatea Acum!
- Reddit - 1200isplenty - Cum să numeri caloriile în ceapa murată
- Preparate preparate - sinonime și cuvinte conexe Dicționar Macmillan
- Reddit - nutriție - Cum calculați cu precizie caloriile din carne
- Tulburări gastrointestinale cauzate de alimentația sănătoasă a fibrelor SF Gate
- 7 lucruri pe care trebuie să le faceți înainte de a începe o dietă
- Fosta frontmană a distilatorilor, Brody Dalle, este gata să se întoarcă din nou
- Calorii arse doar picioare Mini Stepper Nutracheck
- Noi informații despre ceea ce au mâncat oamenii neolitici în sud-estul Europei - ScienceDaily
- Vin negru fără alcool (oală instant, aragaz, aragaz lent) - fata aceea gătește sănătos
- Poziția dvs. de șezut la toaletă vă oferă constipație! Știți cum să o corectați - Times of India
- De ce calitățile tale sunt greșite pe MyFitnessPal
- Succesiunea la domiciliu
- Mașina pentru o nouă generație - Manila Bulletin