Forum Discussion
AllExcept y KeepFilters
Hola
Simplemente estoy luchando por entender por qué la parte de "Fecha de recepción" de esta tabla de resumen de DAX no obedece a la función AllExcept y devuelve la misma fecha para cada registro de documento: sospecho que hay un problema de contexto, así como algo que ver con la función KeepFilter, ya que funciona cuando se elimina la función KeepFilter. Sin embargo, necesito excluir el estado de revisión<>"Rechazado" del registro de documentos (tenga en cuenta que la fecha de envío se devuelve de la tabla de transmisión.
El modelo se configura en base a 2 tablas de hechos (Registro de documentos y Transmisión) y varias tablas de dimensiones (Proyecto, Documento, Revisión, Estado del documento), todas relacionadas con las tablas de hechos.
Agradecería cualquier ayuda para comprender este problema. Gracias.
Summary - CDS =
var Table1 =
ADDCOLUMNS(
SUMMARIZE( --table with the core columns required
'Document Register',
'Document Register'[ProjectID],
'Document Register'[ProjectID_DocumentNo],
'Document Register'[Contract (ID)],
'Document Register'[Discipline Name (ID)],
'Document Register'[Sub Project (ID)],
'Document Register'[Sender Company],
'Document Register'[Project Phase (ID)],
"Received Date", --return the earliest transmittal sent date
CALCULATE(
MIN(Transmittal[Date Sent]),
ALL(Revision),
ALL('Doc Status'),
'Doc Status'[Status Code]<>"PLA",
KEEPFILTERS( --retain any existing filters on the document register table and add this filter
FILTER(
'Document Register',
'Document Register'[Review Status]<>"Rejected"
)
),
ALLEXCEPT(
'Document Register',
'Document Register'[ProjectID_DocumentNo]
)
)
),
"Planned Date", --Calculated planned date
CALCULATE(
MAX( 'Document Register'[Planned Date] ),
'Document Register'[Latest Revision] = "Latest",
ALLEXCEPT(
'Document Register',
'Document Register'[ProjectID_DocumentNo]
)
),
"Forecast Date", --Calculated forecast date
CALCULATE(
MAX( 'Document Register'[Forecast Date] ),
'Document Register'[Latest Revision] = "Latest",
ALLEXCEPT(
'Document Register',
'Document Register'[ProjectID_DocumentNo]
)
),
"Count RevCode Numeric",
CALCULATE(
DISTINCTCOUNT('Document Register'[ProjectID_DocumentNo]),
Revision[Is RevCode Numeric] = true, --if rev code is a number - couple of conditions exist
ALLEXCEPT(
'Document Register',
'Document Register'[ProjectID_DocumentNo]
)
)
)
RETURN
Table1
2 Replies
- Syndicate_Admin
Administrator
@msa_007 , Pruebe la medida actualizada
Resumen - CDS =
VAR Fecha de Recepción =
CALCULAR(
MIN(Transmisión[Fecha de envío]),
REMOVEFILTERS(Revisión),
REMOVEFILTERS('estado del documento'),
'Doc Status' [código de estado] <> "PLA",
FILTRO(
«Registro de documentos»,
'Registro de documentos' [Estado de revisión] <> "Rechazado"
),
ALLEXCEPT(
«Registro de documentos»,
'Registro de documentos'[ProjectID_DocumentNo]
)
)
VAR Fecha Planificada =
CALCULAR(
MAX('Registro de documentos' [Fecha prevista]),
'Registro de documentos' [última revisión] = "más reciente",
ALLEXCEPT(
«Registro de documentos»,
'Registro de documentos'[ProjectID_DocumentNo]
)
)
Fecha de pronóstico del VAR =
CALCULAR(
MAX('Registro de documentos' [Fecha de previsión]),
'Registro de documentos' [última revisión] = "más reciente",
ALLEXCEPT(
«Registro de documentos»,
'Registro de documentos'[ProjectID_DocumentNo]
)
)
Cuenta VARCrédigoNumérico =
CALCULAR(
DISTINCTCOUNT('Registro de documentos'[ProjectID_DocumentNo]),
revision[es el código de revisión numérico] = VERDADERO,
ALLEXCEPT(
«Registro de documentos»,
'Registro de documentos'[ProjectID_DocumentNo]
)
)
DEVOLUCIÓN
ADDCOLUMNS(
RESUMIR(
«Registro de documentos»,
'Registro de documentos' [ProjectID],
«Registro de documentos»[ProjectID_DocumentNo],
'Registro de documentos' [contrato (ID)],
'Registro de documentos' [nombre de la disciplina (ID)],
'Registro de Documentos' [Subproyecto (ID)],
«Registro de documentos» [empresa remitente],
'Registro de documentos' [Fase del proyecto (ID)]
),
"Fecha de recepción", ReceivedDate,
"Fecha planificada", PlannedDate,
"Fecha de pronóstico", ForecastDate,
"Count RevCode Numeric", CountRevCodeNumeric
) - Syndicate_Admin
Administrator
¡Gracias por tu respuesta @bhanu_gautam
Probé esto y ahora ha perdido todo su contexto.
En última instancia, estoy tratando de hacer que la mesa se vea así. Actualmente, la fecha de recepción en negrita no se muestra para el mismo documento "123456".
Fecha prevista Fecha de pronóstico Fecha de recepción Contar RevCode Numérico Contrato (ID) Nombre de la disciplina (ID) Sub Proyecto (ID) Empresa remitente Fase del proyecto (ID) ID de proyecto ProjectID_DocumentNo 10/03/2023 0:00 1 General Generalidades (G) Fábrica de Bob Ejecución (EXE) A0000 123456 10/03/2023 0:00 1 General Generalidades (G) Ejecución (EXE) Fábrica de Bob Ejecución (EXE) A0000 123456