Hello Jeffer,
Thank you for reaching back to me. I ended up finding a solution for that problem, it was just a matter of correctly using the logical operators. Here is my code:
// case only unit1 filed
If(
!IsBlank(varUnit1) && IsBlank(varUnit2),
(
'Unit 1'.Value = varUnit1 &&
If(
!IsBlank(varMin1),
'Min 1' >= varMin1,
true
) &&
If(
!IsBlank(varMax1),
'Max 1' <= varMax1,
true
)
) || (
'Unit 2'.Value = varUnit1 &&
If(
!IsBlank(varMin1),
'Min 2' >= varMin1,
true
) &&
If(
!IsBlank(varMax1),
'Max 2' <= varMax1,
true
)
),
true
),
// case only unit 2 filed
If(
IsBlank(varUnit1) && !IsBlank(varUnit2),
(
'Unit 1'.Value = varUnit2 &&
If(
!IsBlank(varMin2),
'Min 1' >= varMin2,
true
) &&
If(
!IsBlank(varMax2),
'Max 1' <= varMax2,
true
)
) || (
'Unit 2'.Value = varUnit2 &&
If(
!IsBlank(varMin2),
'Min 2' >= varMin2,
true
) &&
If(
!IsBlank(varMax2),
'Max 2' <= varMax2,
true
)
),
true
),
// case both of them filled
If(
!IsBlank(varUnit1) && !IsBlank(varUnit2),
(
'Unit 1'.Value = varUnit1 && 'Unit 2'.Value = varUnit2 &&
If(
!IsBlank(varMin1),
'Min 1' <= varMin1,
true
) &&
If(
!IsBlank(varMax1),
'Min 2' <= varMax1,
true
) &&
If(
!IsBlank(varMin2),
'Max 1' <= varMin2,
true
) &&
If(
!IsBlank(varMax2),
'Max 2' <= varMax2,
true
)
) || (
'Unit 1'.Value = varUnit2 && 'Unit 2'.Value = varUnit1 &&
If(
!IsBlank(varMin1),
'Max 1' <= varMin1,
true
) &&
If(
!IsBlank(varMax1),
'Max 2' <= varMax1,
true
) &&
If(
!IsBlank(varMin2),
'Min 1' <= varMin2,
true
) &&
If(
!IsBlank(varMax2),
'Min 2' <= varMax2,
true
)
)
ColX = varUnitX. Then my minVarX/maxVarX would be varX.
It is really lengthy and quite hard to read. If you have tips, I would love to improve that piece of code!