Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago
Solved

Syntax Checker for Calculated Column

Dear PowerBI Community

I encounter a strange issue since the September Update of PowerBI Desktop.

I have the following calculated column:

Project Status CRM =
SWITCH (
[StatusCode],
1, "Neu",
300800002, "Temporär freigegeben",
300800003, "Freigegeben",
717700000, "Finale Verrechnung",
100001, "Abgeschlossen",
717700001, "Storniert",
717700002, "Gesperrt",
4, "Blockiert",
300800000, "In Bearbeitung (Obsolet)",
"Unbekannter Status"
)

It was in place and working before. I just edited it to add one additional option (717700002, "Gesperrt").

Now its showing me a syntax error:

The syntax for '"Neu"' is incorrect. (DAX(SWITCH ( [StatusCode], 1. "Neu", 300800002. "Temporär freigegeben", 300800003. "Freigegeben", 717700000. "Finale Verrechnung", 100001. "Abgeschlossen", 717700001. "Storniert", 717700002. "Gesperrt", 4. "Blockiert", 300800000. "In Bearbeitung (Obsolet)", "Unbekannter Status"))).

Data type and Format are set to "text" and I tried deleting and recreating the column already.

Any help on this? Does anyone experience same strange issues?

Thanks in advance and best,
Phil
  • Hi Anonymous ,

     

    Does your regional settings have comma as decimal separator? When working with numbers and having the decimals mark as comma I have encountered that if that is matching with the comma of the parameters of functions I need to add the ,0 as part of my syntax for numbers.

     

    Believe that this is what is happening here. Using 300800003, or 300800003,0 is the same for the syntax not really sure why is happening currently with the September version but could be this.

     

    Regards,

    MFelix

7 Replies

  • AlB's avatar
    AlB
    Community Champion

    Hi Anonymous 

    The code the error message shows has dots instead of the necessary commas after the numbers. Could that be the problem? And it complains about "Neu", which is what comes after the first dot.

     

    The syntax for '"Neu"' is incorrect. (DAX(SWITCH ( [StatusCode], 1. "Neu", 300800002. "Temporär freigegeben", 300800003. "Freigegeben", 717700000. "Finale Verrechnung", 100001. "Abgeschlossen", 717700001. "Storniert", 717700002. "Gesperrt", 4. "Blockiert", 300800000. "In Bearbeitung (Obsolet)", "Unbekannter Status"))).

    • Anonymous's avatar
      Anonymous
      Not applicable

      Thanks AIB for your fast reply!

      Good hint and observation! But as you see in my code I use commas...
      I tried typing them again but still the same.
      Could this be related to a Locale that is set in the options?

  • Anonymous's avatar
    Anonymous
    Not applicable

    OMG

    It is working when I change the code as follows:

    Project Status CRM =
    SWITCH (
    [StatusCode],
    1,, "Neu",
    300800002,, "Temporär freigegeben",
    300800003,, "Freigegeben",
    717700000,, "Finale Verrechnung",
    100001,, "Abgeschlossen",
    717700001,, "Storniert",
    717700002,, "Gesperrt",
    4,, "Blockiert",
    300800000,, "In Bearbeitung (Obsolet)",
    "Unbekannter Status"
    )

    How does this make sense?
      • MFelix's avatar
        MFelix
        Super User

        Hi Anonymous ,

         

        Does your regional settings have comma as decimal separator? When working with numbers and having the decimals mark as comma I have encountered that if that is matching with the comma of the parameters of functions I need to add the ,0 as part of my syntax for numbers.

         

        Believe that this is what is happening here. Using 300800003, or 300800003,0 is the same for the syntax not really sure why is happening currently with the September version but could be this.

         

        Regards,

        MFelix

  • v-frfei-msft's avatar
    v-frfei-msft
    Community Support

    Hi Anonymous ,

     



    The syntax for '"Neu"' is incorrect. (DAX(SWITCH ( [StatusCode], 1. "Neu", 300800002. "Temporär freigegeben", 300800003. "Freigegeben", 717700000. "Finale Verrechnung", 100001. "Abgeschlossen", 717700001. "Storniert", 717700002. "Gesperrt", 4. "Blockiert", 300800000. "In Bearbeitung (Obsolet)", "Unbekannter Status"))).

    For your code , please change "." to "," in some places.

    (SWITCH ( [StatusCode], 1, "Neu", 300800002, "Temporär freigegeben", 300800003,"Freigegeben", 717700000, "Finale Verrechnung", 100001, "Abgeschlossen", 717700001, "Storniert", 717700002, "Gesperrt", 4. "Blockiert", 300800000, "In Bearbeitung (Obsolet)", "Unbekannter Status")))

    BTW, you can check your DAX code in the site.

    http://www.daxformatter.com/