Help: Data is not returned according to the declared value

I have the above formula.
Test_Record table has columns [Products_Name], [Answer_22] with data type Enum List.
Table Ans22_P8_9 has column [Products_Name] ref to Table Test_Record, [Ratio] has data type Percent.

When I select the value of the [Ratio] column, the results return 0, no other values are returned as declared in the formula.
When column [Answer_22] has the data type Text, the returned values are exactly as declared.
Please help me correct the above error to match the returned data type Enum List

IFS(
IN([Answer_22], LIST("a. Sản phẩm chưa đạt mức chất lượng của bất cứ sản phẩm nào tương tự","a. Không có")), 0,

IN([Answer_22], LIST("a. Tương đương sản phẩm thông dụng của Trung Quốc, các nước đang phát triển, các nước châu Á khác","a. Bất ổn định, thường phải tìm nguồn thay thế khác ")), 1,

IN([Answer_22], LIST("b. Tương đương sản phẩm thông dụng của Trung Quốc, các nước đang phát triển, các nước châu Á khác","b. Tương đối ổn định")), 2,

OR(
AND(
MIN(
LIST(
LOOKUP(
[_THISROW].[Products_Name],
"Ans22_P8_9",
"Products_Name",
"Ratio"
)
)
) >= 0.01,
MIN(
LIST(
LOOKUP(
[_THISROW].[Products_Name],
"Ans22_P8_9",
"Products_Name",
"Ratio"
)
)
) < 0.2
),
IN([Answer_22], LIST("a. Qua 1 - 2 nguyên công","b. Doanh nghiệp trong nước","b. Tương đương các sản phẩm của Hàn Quốc - Đài Loan, sản phẩm của các Hãng nổi tiếng sản xuất tại nước khác","c. Ổn định"))
), 3,

IN([Answer_22], LIST("c. Tương đương các sản phẩm của Hàn Quốc - Đài Loan, sản phẩm của các Hãng nổi tiếng sản xuất tại nước khác","a. Quy trình công nghệ đơn giản, < 4 công đoạn","c. Tương đương sản phẩm chính hãng của các nước tiên tiến Châu Âu – G7 – Châu Úc")
), 4,

AND(
MIN(
LIST(
LOOKUP(
[_THISROW].[Products_Name],
"Ans22_P8_9",
"Products_Name",
"Ratio"
)
)
) >= 0.2,
MIN(
LIST(
LOOKUP(
[_THISROW].[Products_Name],
"Ans22_P8_9",
"Products_Name",
"Ratio"
)
)
) < 0.4
), 5,

OR(
AND(
CONTAINS(SPLIT([Answer_22], ","), "a. Quy trình công nghệ đơn giản, < 4 công đoạn"),
CONTAINS(SPLIT([Answer_22], ","), "d. Việc kiểm soát quá trình để sản xuất ra sản phẩm được tự động hóa trên 50%")
),
IN([Answer_22], LIST("d. Tương đương sản phẩm chính hãng của các nước tiên tiến Châu Âu – G7 – Châu Úc","b. Qua 3 – 5 nguyên công","c. Doanh nghiệp nước ngoài hoặc FDI"))
), 6,

AND(
MIN(
LIST(
LOOKUP(
[_THISROW].[Products_Name],
"Ans22_P8_9",
"Products_Name",
"Ratio"
)
)
) >= 0.4,
MIN(
LIST(
LOOKUP(
[_THISROW].[Products_Name],
"Ans22_P8_9",
"Products_Name",
"Ratio"
)
)
) < 0.6
), 7,

IN([Answer_22], LIST("b. Quy trình công nghệ tương đối phức tạp, 4-7 công đoạn")
), 8,

OR(
AND(
MIN(
LIST(
LOOKUP(
[_THISROW].[Products_Name],
"Ans22_P8_9",
"Products_Name",
"Ratio"
)
)
) >= 0.6,
MIN(
LIST(
LOOKUP(
[_THISROW].[Products_Name],
"Ans22_P8_9",
"Products_Name",
"Ratio"
)
)
) < 0.8
),
IN([Answer_22], LIST("c. Qua 6 – 10 nguyên công"))
), 9,

OR(
AND(
CONTAINS(SPLIT([Answer_22], ","), "b. Quy trình công nghệ tương đối phức tạp, 4-7 công đoạn"),
CONTAINS(SPLIT([Answer_22], ","), "d. Việc kiểm soát quá trình để sản xuất ra sản phẩm được tự động hóa trên 50%")
),
IN([Answer_22], LIST("c. Quy trình công nghệ phức tạp, > 7 công đoạn"))
), 10,

AND(
MIN(
LIST(
LOOKUP(
[_THISROW].[Products_Name],
"Ans22_P8_9",
"Products_Name",
"Ratio"
)
)
) >= 0.8,
MIN(
LIST(
LOOKUP(
[_THISROW].[Products_Name],
"Ans22_P8_9",
"Products_Name",
"Ratio"
)
)
) < 0.9
), 11,

OR(
AND(
CONTAINS(SPLIT([Answer_22], ","), "c. Quy trình công nghệ phức tạp, > 7 công đoạn"),
CONTAINS(SPLIT([Answer_22], ","), "d. Việc kiểm soát quá trình để sản xuất ra sản phẩm được tự động hóa trên 50%")
),
IN([Answer_22], LIST("d. Trên 10 nguyên công"))
), 12,

AND(
MIN(
LIST(
LOOKUP(
[_THISROW].[Products_Name],
"Ans22_P8_9",
"Products_Name",
"Ratio"
)
)
) >= 0.9,
MIN(
LIST(
LOOKUP(
[_THISROW].[Products_Name],
"Ans22_P8_9",
"Products_Name",
"Ratio"
)
)
) <= 1
), 13,

TRUE, "0"
)

 

 

Solved Solved
1 1 53
1 ACCEPTED SOLUTION

LOOKUP() returns only one value, which is the first one in the list. However, it seems that you want to retrieve all ratio values and choose the smallest one, hence MIN(LIST()). These functions in you expression do not make any sense with LOOKUP(). 

Use SELECT() instead with MIN(). Remove LIST(), you already get a list.

View solution in original post

1 REPLY 1

LOOKUP() returns only one value, which is the first one in the list. However, it seems that you want to retrieve all ratio values and choose the smallest one, hence MIN(LIST()). These functions in you expression do not make any sense with LOOKUP(). 

Use SELECT() instead with MIN(). Remove LIST(), you already get a list.

Top Labels in this Space