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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
CAB80
Frequent Visitor

Columna calculada en consulta directa que no funciona

Hola

Soy nuevo en este foro y Power BI, así que por favor, tenga cuidado conmigo 😁

He estado enloqueciendo toda la tarde, porque una columna calculada simple (como abajo) funciona en modo importado, pero no en consulta directa? ¿Puede alguien explicar por qué esto no funciona y cómo puedo ser capaz de arreglarlo?

CalSeasonStartDate ?
CALCULATE(Min('Calendar'[Fecha]),
filter(all(bi_Grader_BatchV),bi_Grader_BatchV[TotalBinWeight] <> blank() && bi_Grader_BatchV[Season] ? 'Calendar'[Season]))
Trabajo en la industria de la fruta y cada temporada tiene una fecha de inicio y finalización determinada por los registros del primer día se introducen y también para el último. En mi modelo importado, utilicé esta columna para otras medidas para decirme cuál fue el primer día de embalaje para cada temporada (año).
Además, ¿voy a tener problemas continuos con DQ vs import para expresiones dax similares? Quiero que estos datos estén "sondeando" en vivo, así que entiendo que DQ es el camino a seguir, pero necesito que estas expresiones funcionen 😟
Gracias de antemano
4 REPLIES 4
v-alq-msft
Community Support
Community Support

Hola, @CAB80

Hay algunas limitaciones para las columnas calculadas en el modo DirectQuery. Las columnas calculadas se limitan a ser dentro de la fila, ya que en, sólo pueden hacer referencia a los valores de otras columnas de la misma tabla, sin el uso de ninguna función de agregado. Para más información, consulte el documento oficial .

Como solución alternativa, puede intentar crear una medida. Creé datos para reproducir tu escenario.

Testalq:

a1.png

Calendario:

Calendar = CALENDARAUTO()

Hay una relación uno a uno entre dos tablas.

Puede crear una medida como se muestra a continuación.

Result = 
var _season = 
IF(
    HASONEVALUE(Testalq[Season]),
    VALUES(Testalq[Season])
)
return
CALCULATE(
    MIN('Calendar'[Date]),
    FILTER(
        ALL(Testalq),
        Testalq[Season] = _season
    )
)

Resultado:

a2.png

Saludos

Allan

Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Muchas gracias por su repl y por poner esfuerzo para ayudarme a encontrar una solución. Por desgracia, no ha resuelto mi problema hasta ahora. La salida de la solución parece ser lo que quiero, pero no funcionó para mí.

En primer lugar, mis tablas están conectadas ([Pack Date] - > [Date]) con una relación de uno a muchos donde la tabla Calendar es la que es la que. No estoy seguro de si esto afecta a su solución.

En segundo lugar, me gustaría que la columna/medida estuviera en la tabla Calendario. Esto es así que no puedo usar esto como una referencia rápida y simple para muchas otras medidas. Sólo tiene sentido para mí. Probé tu solución en ambos y no funcionó. A continuación se muestra una foto de lo que sucedió cuando pongo la medida en la otra tabla (no la tabla de calendario). Cuando lo puse en la tabla Calendario, la salida era sólo la primera fecha en todas las estaciones. Así que no funcionó de ninguna de las dos maneras.

Capture.PNG

En pocas palabras, lo que realmente quiero aquí es para cada registro en mi tabla calendario, para mostrarme la fecha de inicio / fecha de finalización de la temporada correspondiente (por separado) para esa temporada (básicamente año fiscal). Esta es la razón por la que la columna calc funcionó tan bien.

Estoy muy frustrado aquí porque sentí que realmente estaba progresando con Power BI y ahora que he cambiado a consulta directa, todo lo que aprendí y apliqué está en el drenaje 😟

De todos modos, cualquier ayuda que pueda ofrecer es muy apreciada.

amitchandak
Super User
Super User

@CAB80

La columna calculada no funciona en el modo de consulta directa. Usted tiene trabajo en términos de medida

Trate como


CalSeasonStartDate ?
CALCULATE(Min('Calendar'[Fecha]),
filter(all(bi_Grader_BatchV), not(isblank(bi_Grader_BatchV[TotalBinWeight])) && bi_Grader_BatchV[Season] á max('Calendar'[Season])))

Consulte cómo lo hice con la medida : https://community.powerbi.com/t5/Community-Blog/Decoding-Direct-Query-in-Power-BI-Part-1-Time-Intell...

https://community.powerbi.com/t5/Community-Blog/Decoding-Direct-Query-in-Power-BI-Part-2-Date-Differ...

Necesitas crear medida sin tener cuidado con el contexto

Gracias por la pronta respuesta, pero esto no funcionó. Sólo me da la fecha de inicio en todas las estaciones, no para la temporada de alcance. Vea a continuación. Así que es agarrar la fecha mínima, pero no para cada una de las estaciones. Para simplificar sólo tengo dos tablas aquí, mi tabla de calendario y la tabla de bi_Grader_BatchV que se anhelan a través de date y packdate respectivamente. Mi código funcionaba perfectamente como una columna en el archivo importado. La razón por la que quería una columna era para poder hacer referencia fácilmente a cualquier registro a la fecha de inicio/fin de cada temporada.

Cualquier otra ayuda sería muy apreciada.

Capture.PNG

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors