DAX para elegir un ‘RAG’ dado en un bucle

Un usuario Pregunto ✅

navedkhan

Hola, necesito escribir una función DAX en la que si;

1) si todos los valores en la columna secundaria son ‘Verde’; entonces la Columna principal sería ‘Verde’, de lo contrario;

2) si alguno de los valores dados es ‘Rojo o Ámbar’, entonces la columna principal es ‘Rojo’; ‘Ámbar’

12 PNG

Por favor, ayuda ya que no puedo escribir esta lógica que debería ejecutarse en un bucle.

@Ashish_Mathur @Zubair_Muhammad

Ashish_Mathur

En respuesta a navedkhan

Hola,

Esta medida funciona

Result = if(CALCULATE(COUNTROWS(Data),ALL(Data[RAG]),Data[RAG]="Green")=CALCULATE(COUNTROWS(Data),ALL(Data[RAG])),"Green",if(CALCULATE(COUNTROWS(Data),ALL(Data[RAG]),Data[RAG]="Red")>0,"Red",if(CALCULATE(COUNTROWS(Data),ALL(Data[RAG]),Data[RAG]="Amber")>0,"Amber",BLANK())))

Espero que esto ayude.

Sin título.png

Hola @navedkhan

Si ha solucionado el problema por su cuenta, comparta amablemente su solución. Si las publicaciones anteriores son útiles, márquelas como una solución para ayudar a otros a encontrarlas más rápidamente. ¡Gracias!

Nathaniel_C

En respuesta a v-diye-msft

Hola @navedkhan,

Es posible que desee utilizar un Switch(), parece más simple que las declaraciones If anidadas para la depuración y la lectura. Dividí esta solución en tres columnas para facilitar la comprensión y la depuración. Cambió el color a un número para ayudar a ordenarlos. Señalaría que, en su lógica, no menciona si un artículo podría tener los tres colores para el RAG infantil. Supuse que podría haber esa situación, en cuyo caso construí la lógica para que fuera: si hay rojo, entonces rojo, si no hay rojo y hay ámbar, entonces ámbar, si solo es verde, entonces verde. A continuación se muestra la tabla que generé, el código y la imagen.

Hazme saber si tienes alguna pregunta.

Si esto resuelve sus problemas, márquelo como el solución, para que otros puedan encontrarlo fácilmente. Prestigio son agradables también.
nataniel

RAG.PNG

Child Rag # = SWITCH(RAG[Child RAG],"Red",1,"Amber",2,"Green",3) // Turn the color into a number so that we can select the min

Parent Rag # = var _item = RAG[Item]

return CALCULATE( MIN(RAG[Child Rag #]),(Filter('RAG',RAG[Item] = _item))) // Select for each Item

Parent Rag Color = Switch(RAG[Parent Rag #],1,"Red",2,"Amber",3,"Green") //Turns the number back to a color

RAG1.PNG

Ashish_Mathur

Hola,

Esa es una pregunta confusa. ¿Por qué la respuesta para EE. UU. y el Reino Unido debería ser verde? Por favor, aclare.

navedkhan

En respuesta a Ashish_Mathur

disculpas por la confusión causada si la hubiere.

Básicamente quiero derivar esto;

– «si alguna de las columnas secundarias (col. RAG) es roja; la columna principal sería ‘Roja’; si la columna secundaria es ‘Ámbar’, entonces la columna principal sería ‘Ámbar’.

la confianza ahora se simplifica.

@Ashish_Mathur

Ashish_Mathur

En respuesta a navedkhan

Hola,

Esta medida funciona

Result = if(CALCULATE(COUNTROWS(Data),ALL(Data[RAG]),Data[RAG]="Green")=CALCULATE(COUNTROWS(Data),ALL(Data[RAG])),"Green",if(CALCULATE(COUNTROWS(Data),ALL(Data[RAG]),Data[RAG]="Red")>0,"Red",if(CALCULATE(COUNTROWS(Data),ALL(Data[RAG]),Data[RAG]="Amber")>0,"Amber",BLANK())))

Espero que esto ayude.

Sin título.png

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *