Forum Discussion

Traceout's avatar
Traceout
Frequent Visitor
1 year ago
Solved

DAX comparison operations do not support comparing values of type Integer with values of type T/F

I'm getting the following error when creating a new column:
 
DAX comparison operations do not support comparing values of type Integer with values of type True/False. Consider using the VALUE or FORMAT function to convert one of the values.
 
'TEMP STATES' DEVCAT is a whole number data type
TEMP STATES - DEVICE is text
 
Any help would be appreciated. 
 
DEVCAT SWITCH =
SWITCH (
    TRUE (),
    ISERROR ( FIND ( "84", 'TEMP STATES - ALL'[DEVCAT]) ) <> TRUE (), "SECTIONALIZER",
    ISERROR ( FIND ( "4", 'TEMP STATES - ALL'[DEVCAT]) ) && FIND ( "SC_", 'TEMP STATES - ALL'[DEVICE] ) <> TRUE (), "SECTIONALIZER",
    ISERROR ( FIND ( "4", 'TEMP STATES - ALL'[DEVCAT]) ) && FIND ( "SW_", 'TEMP STATES - ALL'[DEVICE] ) <> TRUE (), "SWITCH",
    ISERROR ( FIND ( "4", 'TEMP STATES - ALL'[DEVCAT]) ) && FIND ( "_CB", 'TEMP STATES - ALL'[DEVICE] ) <> TRUE (), "FEEDER",
    ISERROR ( FIND ( "4", 'TEMP STATES - ALL'[DEVCAT]) ) <> TRUE (), "SWITCH",
    ISERROR ( FIND ( "18", 'TEMP STATES - ALL'[DEVCAT]) ) <> TRUE (), "FUSE",
    ISERROR ( FIND ( "8", 'TEMP STATES - ALL'[DEVCAT]) ) <> TRUE (), "SERVICE TRANSFORMER",
    ISERROR ( FIND ( "19", 'TEMP STATES - ALL'[DEVCAT]) ) <> TRUE (), "RECLOSER",
    ISERROR ( FIND ( "21", 'TEMP STATES - ALL'[DEVCAT]) ) <> TRUE (), "RECLOSER",
    ISERROR ( FIND ( "26", 'TEMP STATES - ALL'[DEVCAT]) ) <> TRUE (), "LINECUT",
    ISERROR ( FIND ( "92", 'TEMP STATES - ALL'[DEVCAT]) ) <> TRUE (), "SERVICE",
    ISERROR ( FIND ( "9", 'TEMP STATES - ALL'[DEVCAT]) ) <> TRUE (), "TRANSMISSION",
    ISERROR ( FIND ( BLANK(), 'TEMP STATES - ALL'[DEVCAT]) ) <> TRUE (),  "BLANK",
    "REPORT"
)
  • Hello,

    I don't think it can work like that. Try this:

     

    DEVCAT SWITCH =
    SWITCH (
    TRUE(),
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "84"), "SECTIONALIZER",

    AND(
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "4"),
    CONTAINSSTRING('TEMP STATES - ALL'[DEVICE], "SC_")
    ), "SECTIONALIZER",

    AND(
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "4"),
    CONTAINSSTRING('TEMP STATES - ALL'[DEVICE], "SW_")
    ), "SWITCH",

    AND(
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "4"),
    CONTAINSSTRING('TEMP STATES - ALL'[DEVICE], "_CB")
    ), "FEEDER",

    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "4"), "SWITCH",
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "18"), "FUSE",
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "8"), "SERVICE TRANSFORMER",
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "19"), "RECLOSER",
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "21"), "RECLOSER",
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "26"), "LINECUT",
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "92"), "SERVICE",
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "9"), "TRANSMISSION",

    ISBLANK('TEMP STATES - ALL'[DEVCAT]), "BLANK",

    "REPORT"
    )

2 Replies

  • Gabry's avatar
    Gabry
    Icon for Super User rankSuper User

    Hello,

    I don't think it can work like that. Try this:

     

    DEVCAT SWITCH =
    SWITCH (
    TRUE(),
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "84"), "SECTIONALIZER",

    AND(
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "4"),
    CONTAINSSTRING('TEMP STATES - ALL'[DEVICE], "SC_")
    ), "SECTIONALIZER",

    AND(
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "4"),
    CONTAINSSTRING('TEMP STATES - ALL'[DEVICE], "SW_")
    ), "SWITCH",

    AND(
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "4"),
    CONTAINSSTRING('TEMP STATES - ALL'[DEVICE], "_CB")
    ), "FEEDER",

    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "4"), "SWITCH",
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "18"), "FUSE",
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "8"), "SERVICE TRANSFORMER",
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "19"), "RECLOSER",
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "21"), "RECLOSER",
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "26"), "LINECUT",
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "92"), "SERVICE",
    CONTAINSSTRING('TEMP STATES - ALL'[DEVCAT], "9"), "TRANSMISSION",

    ISBLANK('TEMP STATES - ALL'[DEVCAT]), "BLANK",

    "REPORT"
    )