Forum Discussion
CALCULATE function not allowed use in a TRUE/FALSE expression.
- Jan 10, 2023
I combined initial measures into one, but you may return back
Intermediate count:=VAR filter1 = CALCULATETABLE ( Data, Data[Tổng phải lấy] = "Lấy", OR ( OR ( OR ( Data[Mã khách hàng] = "084LC00010", Data[Mã khách hàng] = "084LC00016" ), OR ( Data[Mã khách hàng] = "084LC00005", Data[Mã khách hàng] = "084LC00053" ) ), OR ( Data[Mã khách hàng] = "084LC00205", Data[Mã khách hàng] = "084LC00076" ) ) ) VAR filter2 = CALCULATETABLE ( Data, FILTER ( filter1, Data[PU đúng giờ] = "PU đúng giờ" ) ) VAR filter3 = CALCULATETABLE ( Data, FILTER ( filter1, Data[LATE] = "Trễ" ) ) VAR filter4 = CALCULATETABLE ( Data, FILTER ( filter3, OR ( OR ( Data[Trạng thái đơn hàng] = "abnormal parcel", Data[Trạng thái đơn hàng] = "DISPATCH" ), OR ( Data[Trạng thái đơn hàng] = "PICKUP FAILED", Data[Trạng thái đơn hàng] = "PUSAT_DISPATCH" ) ) ) ) VAR counting = IF ( COUNTROWS ( filter2 ) / COUNTROWS ( filter1 ) < 0.99, COUNTROWS ( filter4 ), BLANK () ) RETURN countingBased on it final measure
Final count:=IF ( HASONEVALUE ( Data[Bưu cục gửi hàng] ), [Intermediate count], SUMX ( Machinhanh, [Intermediate count] ) )Result is
It's not necessary to add calculated column, you may use measure as
Copy of Sample:=
VAR filtered =
ADDCOLUMNS ( Data, "ourMeasure", [Tỉ lệ PU đúng giờ] )
RETURN
CALCULATE (
COUNTA ( Data[Bưu cục gửi hàng] ),
// CONDITION 1
Data[Tổng phải lấy] = "Lấy",
//[Tỉ lệ̣ PUđúng giờ] < "99%",
// CONDITION 2
Data[LATE] = "Trễ",
// CONDITION 3
OR (
OR (
OR ( Data[Mã khách hàng] = "084LC00010", Data[Mã khách hàng] = "084LC00016" ),
OR ( Data[Mã khách hàng] = "084LC00005", Data[Mã khách hàng] = "084LC00053" )
),
OR ( Data[Mã khách hàng] = "084LC00205", Data[Mã khách hàng] = "084LC00076" )
),
// CONDITION 4
OR (
OR (
Data[Trạng thái đơn hàng] = "abnormal parcel",
Data[Trạng thái đơn hàng] = "DISPATCH"
),
OR (
Data[Trạng thái đơn hàng] = "PICKUP FAILED",
Data[Trạng thái đơn hàng] = "PUSAT_DISPATCH"
)
),
FILTER ( filtered, [ourMeasure] < 0.99 )
)
but result is exactly the same, 85. Perhaps you may explain why the records you highlighted in your sample shall be excluded, the logic will be more clear.
Thank you for response,
The logic like:
=SUMIFS(Data[Copy of Sample],Data[Mã khách hàng],(E10:E15),Data[Trạng thái đơn hàng],(F10:F15),Data[Tổng phải lấy],(G10:G15),Data[LATE],(H10:H15),Data[Tỉ lệ PU đúng giờ],"<99%")How can we do the same that in Power Pivot,
- SergeiBaklanJan 10, 2023Diamond Contributor
I combined initial measures into one, but you may return back
Intermediate count:=VAR filter1 = CALCULATETABLE ( Data, Data[Tổng phải lấy] = "Lấy", OR ( OR ( OR ( Data[Mã khách hàng] = "084LC00010", Data[Mã khách hàng] = "084LC00016" ), OR ( Data[Mã khách hàng] = "084LC00005", Data[Mã khách hàng] = "084LC00053" ) ), OR ( Data[Mã khách hàng] = "084LC00205", Data[Mã khách hàng] = "084LC00076" ) ) ) VAR filter2 = CALCULATETABLE ( Data, FILTER ( filter1, Data[PU đúng giờ] = "PU đúng giờ" ) ) VAR filter3 = CALCULATETABLE ( Data, FILTER ( filter1, Data[LATE] = "Trễ" ) ) VAR filter4 = CALCULATETABLE ( Data, FILTER ( filter3, OR ( OR ( Data[Trạng thái đơn hàng] = "abnormal parcel", Data[Trạng thái đơn hàng] = "DISPATCH" ), OR ( Data[Trạng thái đơn hàng] = "PICKUP FAILED", Data[Trạng thái đơn hàng] = "PUSAT_DISPATCH" ) ) ) ) VAR counting = IF ( COUNTROWS ( filter2 ) / COUNTROWS ( filter1 ) < 0.99, COUNTROWS ( filter4 ), BLANK () ) RETURN countingBased on it final measure
Final count:=IF ( HASONEVALUE ( Data[Bưu cục gửi hàng] ), [Intermediate count], SUMX ( Machinhanh, [Intermediate count] ) )Result is
- littlevillageJan 25, 2023Iron Contributor
Thank you very much,
Expected results are 100% correctly.
it's just that i still don't quite understand, if i add 2 fields "Mã vận đơn" and "Trạng thái đơn hàng" as shown then result still 85 instead of 82 because 239D01 and 237H01 have been added respectively.- SergeiBaklanJan 25, 2023Diamond Contributor
in Final count measure we summarize based on Machinhanh table
...SUMX ( Machinhanh, [Intermediate count] )
it doesn't matter will you add fields from Data table into PivotTable or not. Thus result is the same, 82.
Do you mean it shall be 85 if any field from Data table is added?