Forum Discussion
Anonymous
7 years agoNot applicable
Dax formula - Live Data Calculated Column workaround
I'm trying to create a new measure in PowerBI to correctly capture current inventory totals. I'm dealing with a live connection so I am unable to create a calculated column for this solution. My go...
v-lili6-msft
7 years agoCommunity Support
hi, Anonymous
Please share some sample data with the data model and expected output.
Best Regards,
Lin
Anonymous
7 years agoNot applicable
Thank you for the reply. The best I can do without sharing sensitive material is below.
There tables I'm working with are below:
- The DimServiceProvider contains a field called ParentServiceProviderName, which contains a list of all of our plants. There's 39 of them. Theres a Second field called ServiceProviderName, which contains sub-locations for our plants. I need to get the inventory for each ParentServiceProviderName.
- The DimProduct contains fields that are used to identify the different types of pallets that we use. The only one of interest is "A Grade" because I can simply copy the "A Grade" inventory total to the other types of pallets.
- The DimDate contains all of the date fields. The one of interest is DimDate[FiscalDayofWeek], which contains the numbers 1 through 7, corresponding from Sunday through Saturday. At the end of each fiscal day, besides Sunday (1) and Saturday (7), plants will enter their inventory. In order to calculate the inventory totals for the prior week, we generally set a Visual filter on FiscalDayofWeek = 6. Which is the inventory entered on Friday.
- The FactCycleCount contains several fields of interest. The main one, Daily A Pallet Total, is how we currently pull inventory. We then set a visual filter, FiscalDayofWeek = 6.
MEASURE FactCycleCount[Daily A Pallet Total] = SUMX(FILTER(FactCycleCount, RELATED(DimProduct[NationalProductRollup]) = "A Grade" && FactCycleCount[CycleCountType] = "Daily"), FactCycleCount[CountTotal])
The problem with this way of doing it is mentioned in the original post above. Plants will forget to enter their inventory, causing the total to be off. I need a way to individually capture the most recent entered inventory, or generally just 1-2 days prior. Below are my measures that I created in an attempt at a solution.
-- Will grab the A Inventory on Day 5 Daily A Pallet Total 5 = CALCULATE( SUM(FactCycleCount[CountTotal]), FILTER( DimProduct, DimProduct[NationalProductRollup] = "A Grade" ), FILTER( DimDate, DimDate[FiscalDayofWeek] = 5 ) ) -- Will grab the A inventory on Day 6 Daily A Pallet Total 6 = CALCULATE( SUM(FactCycleCount[CountTotal]), FILTER( DimProduct, DimProduct[NationalProductRollup] = "A Grade" ), FILTER( DimDate, DimDate[FiscalDayofWeek] = 6 ) ) -- Will grab the A inventory on the 6th day, If Friday is blank, grab Thursdays. -- This works on an invdividual plant level but not the plants total level Daily A Pallet Total 56 = IF(FactCycleCount[Daily A Pallet Total 6] = BLANK(), FactCycleCount[Daily A Pallet Total 5], FactCycleCount[Daily A Pallet Total 6])
Now, after reading the above posts I came up with the following measures, none of which work but I mentioned the errors I get in the comments.
--Receive the following error message: The report measure has a syntax or semantic error at line 3, position 6, reported by Analysis Services: 'The syntax for 'Table56' is incorrect. newMeasure56 = var Table56 = SUMMARIZE(FactCycleCount,DimServiceProvider[ParentServiceProviderName],"total",[Daily A Pallet Total 56]) return SUMX(Table56,[total])
--The report measure mymeasure2 has a syntax or semantic error at line 4, position 31, reported by Analysis Sertices: --Calculation error in measure: Cannot convert value of 'Atlanta, GA' to type text True/False' Mymeasure2 = IF(HASONEFILTER(DimServiceProvider[ParentServiceProviderName]), IF(FactCycleCount[Daily A Pallet Total 6] = BLANK(), FactCycleCount[Daily A Pallet Total 5], FactCycleCount[Daily A Pallet Total 6]), SUMX(FILTER(FactCycleCount, VALUES(DimServiceProvider[ParentServiceProviderName])), [Daily A Pallet Total]) )