Forum Discussion
DAX Formula
Hi! I want to get products which are sold n month sequentially. i wrote a dax measure , doest give an error but also doesnt works well. Example: if i want to find products which are sold 6 month sequentially, in a result it gives a product whcih are sold 3 month sequentially.
VAR NumberOfMonths = 6
VAR LastNMonths =
DATESINPERIOD(
'Date'[Date],
MAX('Date'[Date]),
-NumberOfMonths,
MONTH
)
VAR SelectedProductIDs =
SUMMARIZE(
FILTER(
'_Measures - Sales Invoice',
'_Measures - Sales Invoice'[SalesInvoiceDateID] IN LastNMonths
),
'_Measures - Sales Invoice'[ProductSID],
"MonthCount", DISTINCTCOUNT('_Measures - Sales Invoice'[SalesInvoiceDateID])
)
VAR ProductsWithSales =
FILTER(
SelectedProductIDs,
[MonthCount] = NumberOfMonths
)
RETURN
IF(
COUNTROWS('_Measures - Sales Invoice') > 0,
1,
0
)
3 Replies
- bhanu_gautamSuper User
Laman , Try updating your measure as
VAR NumberOfMonths = 6
VAR LastNMonths =
DATESINPERIOD(
'Date'[Date],
MAX('Date'[Date]),
-NumberOfMonths,
MONTH
)VAR SalesInLastNMonths =
FILTER(
'_Measures - Sales Invoice',
'_Measures - Sales Invoice'[SalesInvoiceDateID] IN LastNMonths
)VAR ProductMonthCount =
ADDCOLUMNS(
SUMMARIZE(
SalesInLastNMonths,
'_Measures - Sales Invoice'[ProductSID],
'Date'[YearMonth]
),
"MonthCount", COUNTROWS(SalesInLastNMonths)
)VAR ProductsWithSalesInAllMonths =
FILTER(
ProductMonthCount,
[MonthCount] = NumberOfMonths
)RETURN
IF(
COUNTROWS(ProductsWithSalesInAllMonths) > 0,
1,
0
) - AnonymousNot applicable
I feel the below revised formula may works
VAR NumberOfMonths = 6
VAR LastNMonths =
DATESINPERIOD(
'Date'[Date],
MAX('Date'[Date]),
-NumberOfMonths,
MONTH
)VAR SelectedProductIDs =
SUMMARIZE(
FILTER(
'_Measures - Sales Invoice',
'_Measures - Sales Invoice'[SalesInvoiceDateID] IN LastNMonths
),
'_Measures - Sales Invoice'[ProductSID],
"MonthCount", DISTINCTCOUNT('_Measures - Sales Invoice'[SalesInvoiceDateID].[Month])
)VAR ProductsWithSales =
FILTER(
SelectedProductIDs,
[MonthCount] = NumberOfMonths
)RETURN
IF(
COUNTROWS(FILTER('_Measures - Sales Invoice', '_Measures - Sales Invoice'[ProductSID] IN ProductsWithSales)) > 0,
1,
0
)- LamanNew Member
Hello Anonymous thanks for repling. I got this error " Expression: The number of arguments is invalid. Function CONTAINSROW must have a value for each column in the table expression." how can i fix it?