Grenose
Grenose

Reputation: 1

DAX Power BI run multiple if and else if date

I am a beginner in PowerBI, I am trying to create a calc column, and I want to know if is possible to call another calc column? Can I do an

IF condition (value_if_true do a if(<value_if_true>,<value_if_false>), <value_if_false>) 

like I try to do in the beginning of my code CONFORME =

Like for example the calc column that I try look for the value High is GroupCVSS :

GroupCVSS = IF('FINAL'[CVSS v3.0]<3.9,"Low 0 - 3.9",if('FINAL'[CVSS v3.0]<6.9,"Medium 4 - 6.9",if('FINAL'[CVSS v3.0]<8.9,"High 7 - 8.9",if('FINAL'[CVSS v3.0]<10,"Critical 9 - 10"))))

I ask you that because I want to create a filter that show me if is compliant or improper, I based on this chart

the chart

CONFORME =

IF (CONTAINSSTRING('FINAL'[GroupCVSS])= "High" and
(CONTAINSSTRING('vLAN '[Exposure Level]) = "External",

        IF (CONTAINSSTRING('CMBDCISERV'[Class]) = "Windows Server" and
        (CONTAINSSTRING('CMBDCISERV'[Class]) = "Linux Server" and
        DATEDIFF(FINAL[Date],TODAY(),DAY) <=30,"COMPLIANTE ", "IMPROPER", "404",

        ELSE
                IF (CONTAINSSTRING('FINAL'[Name],"Java") and
                DATEDIFF(FINAL[Date],TODAY(),DAY) <=90,"COMPLIANTE ", "IMPROPER"

                ELSE
                       IF DATEDIFF(FINAL[Date],TODAY(),DAY) <=365,"COMPLIANTE ", "IMPROPER"

Else
      IF (CONTAINSSTRING('CMBDCISERV'[Class]) = "Windows Server" and
          (CONTAINSSTRING('CMBDCISERV'[Class]) = "Linux Server" and
          DATEDIFF(FINAL[Date],TODAY(),DAY) <=90,"COMPLIANTE", "IMPROPER"


     ELSE
            IF (CONTAINSSTRING('CMBDCISERV'[Class - All]) = "All" and
                (CONTAINSSTRING('ITSM'[Product Categorization Tier 2]) = "Workstation" and
                DATEDIFF(FINAL[Date],TODAY(),DAY) <=30,"COMPLIANTE", "IMPROPER"

            ELSE
                  IF (CONTAINSSTRING('ITSM'[Product Categorization Tier 2]) = "Security Device"
                  DATEDIFF(FINAL[Date],TODAY(),DAY) <=180,"COMPLIANTE", "IMPROPER"

                  ELSE
                        IF DATEDIFF(FINAL[Date],TODAY(),DAY) <=365,"COMPLIANTE", "IMPROPER"

Thank you!

Tony

Upvotes: 0

Views: 447

Answers (1)

Peter
Peter

Reputation: 12375

  1. A calculated column can be based on another calculated column
  2. The syntax for IF statements is
IF(<logical_test>, <value_if_true>[, <value_if_false>])
  1. ELSE is not part of the DAX language
  2. Your CONFORME formula is way too complex (21 decision points)

Upvotes: 1

Related Questions