Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
Hi,
I want to create a measure that sums sales figures based on customers who bought something this edition, but not last.
The edition is just a book edition and not relevant to a time/date. I would write the following in SQL:
SELECT
SUM(a.Total) AS TotalSales
FROM SalesTable a
WHERE a.edition = "2017"
AND a.accountid NOT IN (SELECT accountid FROM SalesTable WHERE a.edition = "2016")
Any idea if this is posibble to do in a Measure?
You may take a good look at the article below.
https://www.sqlbi.com/articles/from-sql-to-dax-in-and-exists/
Hi @wenners68,
Try this code:
_2017 =
VAR _2016 = SELECTCOLUMNS(FILTER(SalesTable; SalesTable[EDITION] = 2016); "ACCOUNTID"; SalesTable[ACCOUNT_ID])
VAR _2017 = SELECTCOLUMNS(FILTER(SalesTable; SalesTable[EDITION] = 2017); "ACCOUNTID"; SalesTable[ACCOUNT_ID])
VAR _tbl = EXCEPT(_2017; _2016)
RETURN
SUMX(FILTER(SalesTable; SalesTable[ACCOUNT_ID] IN (_tbl)); SalesTable[TOTAL])
Hi,
thanks, but that will only give you a total for the entire edition.
Perhaps create a calculated column first that goes something like:
BoughtLastYear = IF(ISBLANK(SUMX(FILTER(TotalSales,TotalSales[accountid]=EARLIER(TotalSales[accountid])&&TotalSales[edition]=EARLIER(TotalSales[edition]-1)),TotalSales[Total)),"No","Yes")
Should create a column with Yes if they bought last year and No if they didn't. Then you could create a Measure like:
MyMeasure = CALCULATE(SUM(TotalSales[Total]),FILTER(TotalSales,BoughtLastYear="Yes"))
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
| User | Count |
|---|---|
| 159 | |
| 132 | |
| 118 | |
| 79 | |
| 53 |