Forum Discussion
error code in dax
Hi all,
we have installed a lot of IoT devices in US and EU, I would like to check if
minimum voltage of devices installed in US insider range: 5V -12V
minimum voltage of devices installed in EU insider range: 5V -9V
if above condition satisfied, then notification should return value 1,
the table visual as result will be like following:
| IoT device ID | Min Voltage | Region | notification |
| 1122 | 11 | EU | 0 |
| 1133 | 8 | EU | 1 |
| 1145 | 15 | US | 0 |
| 1155 | 11 | US | 1 |
I have following code
I got following Error Message:
MdxScript(Model) (127, 1) Calculation error in measure 'Notification'[MinVoltageN]: A table of multiple values was supplied where a single value was expected.
appreciate your help and comment!
Thanks in advance!
Try
MinVoltageN = IF ( ISINSCOPE ( TRACKSHEET[REGION] ), VAR _minV = MIN ( datatable[VOLTAGE] ) VAR _showminvoltage = SWITCH ( TRUE (), VALUES ( TRACKSHEET[REGION] ) = "EU" && _minV < 9 && _minV > 5, 1, VALUES ( TRACKSHEET[REGION] ) = "US" && _minV < 12 && _minV > 5, 1, BLANK () ) -- Notification VAR _Notificationminvol = IF ( _showminvoltage, 1, 0 ) RETURN _Notificationminvol )
4 Replies
- johnt75Super User
Try
MinVoltageN = IF ( ISINSCOPE ( TRACKSHEET[REGION] ), VAR _minV = MIN ( datatable[VOLTAGE] ) VAR _showminvoltage = SWITCH ( TRUE (), VALUES ( TRACKSHEET[REGION] ) = "EU" && _minV < 9 && _minV > 5, 1, VALUES ( TRACKSHEET[REGION] ) = "US" && _minV < 12 && _minV > 5, 1, BLANK () ) -- Notification VAR _Notificationminvol = IF ( _showminvoltage, 1, 0 ) RETURN _Notificationminvol )- reynold522Helper II
Thanks, It works.
could you help me to understand what could be the problem behid my code?
Thanks in advance!
- johnt75Super User
My guess is that the problem was triggered in the total line of a table or matrix value. If the region wasn't filtered down to a single value, as would be the case for a total, then VALUES will return all the regions as a table, and you can't compare a table with multiple rows with a scalar value. By checking ISINSCOPE you are guaranteeing that there will be only 1 value returned and so you can compare that to a scalar value.