Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Salle
Helper I
Helper I

Deneb Vega-lite: AND/OR logic

Hello everyone,

I have a control chart (see below) which I want to set a conditional color "red" if the Diameter is above or below required limits, "Diameter LSL" or "Diameter USL". If within limits "darkblue"-

I struggle to find the correct syntax in Deneb to add AND/OR statements to the condition test.
if ((Diameter > Diameter USL) OR (Diameter < Diameter LSL))...

How can I modify the code below (or is it an better way to achieve the results I want?) to also set the mark below Diameter LSL to "red"?

 },
          "encoding": {
            "color": {
	            "condition": {
	              "test":  "datum['Diameter'] > datum['Diameter USL']", "value": "red"
                     },
	              "value": "darkblue"
	    },
...

 

Capture.JPG

1 ACCEPTED SOLUTION
dm-p
Super User
Super User

Hi @Salle,

You can use JavaScript logical operators in expressions, so something like the following will work:

"test":  "datum['Diameter'] > datum['Diameter USL'] || datum['Diameter'] < datum['Diameter LSL']"
  • And: &&
  • Or: ||
  • Not equal: !=

If you're using the predicate approach (using more structured objects rather than expressions), you can use 'predicate composition' to combine these using arrays - there's an example at the bottom of the doc page here.

Hopefully this will help get you moving. Good luck!

Regards,

Daniel





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!


My course: Introduction to Developing Power BI Visuals


On how to ask a technical question, if you really want an answer (courtesy of SQLBI)




View solution in original post

2 REPLIES 2
Salle
Helper I
Helper I

@dm-p , I did try using your suggestion with | | before but got error message. I guess it was related to wrong placing of " " because now it works perfectly. Thanks again!

 

By the way, great job with Deneb! I am just scratching the surface since a couple of days and really like what I seen so far! 

 

dm-p
Super User
Super User

Hi @Salle,

You can use JavaScript logical operators in expressions, so something like the following will work:

"test":  "datum['Diameter'] > datum['Diameter USL'] || datum['Diameter'] < datum['Diameter LSL']"
  • And: &&
  • Or: ||
  • Not equal: !=

If you're using the predicate approach (using more structured objects rather than expressions), you can use 'predicate composition' to combine these using arrays - there's an example at the bottom of the doc page here.

Hopefully this will help get you moving. Good luck!

Regards,

Daniel





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!


My course: Introduction to Developing Power BI Visuals


On how to ask a technical question, if you really want an answer (courtesy of SQLBI)




Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.