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’
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.
v-diye-msft
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
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
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.