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
Sorry, but I don't know what shall correct logic. However, we may check existing logic directly. Within measure we have 4 conditions to calculate
Sample:=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"
)
)
)
which are combined with AND. We may create calculated columns for each of conditions and another column which ANDs them, after that filter it on TRUE
Filter returns 85 records:
Same result. The only, measure works much faster.
I am sorry for my idea not clear
the formula is missing a condition :
[Tỉ lệ PU đúng giơ] < "99%"̀
If it's worked,
239D01 with [Tỉ lệ PU đúng giơ] =99.79%, so Sample column not count 1 unit for 239D01
237H01 with [Tỉ lệ PU đúng giơ] =99.28%, so Sample column not count 2 unit for 237H01
the expected result is 82 instead of 85