cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
IanWaring
Helper III
Helper III

Eliminación de filas duplicadas, datos de diferentes orígenes de datos (unidos)

Tengo un informe que es una combinación SalesOrderHeaders y SalesOrderLines:

Cliente, Servicio Comprado, Fecha de la Factura, Importe Adeudado

Boston College, Suscripción para HE, 4/5/2020, $400

York City College, Suscripción a FE Colleges, 4/5/2020, $200

York City College, Suscripción a FE Colleges, 4/10/2020, $250

Los tengo sentados en mi vista principal de informe como resultado de todo tipo de combinaciones y filtrado. Me gustaría mostrar solo la última fecha de compra para cada Cliente. El gotcha es que la mayoría de las formas en que puedo ver de eliminar duplicados como este es volver a ordenar las tablas de datos de origen; sin embargo, la fecha de cliente y factura existen en la tabla SalesorderHeader, mientras que el producto y el valor de venta se encuentran en la tabla SalesOrderLines independiente. Sólo estoy buscando las últimas ventas de dos productos específicos, por cliente.

¿Cómo elimino cada barra de registros la transacción más reciente para cada cliente en mi vista de informe? (es decir: para que el primer registro del York College se eliminara de mi vista)?

ps: Soy suficiente un noob que incluso si intento crear una tabla separada, hacer una fecha máxima y unirla de nuevo, no sé cómo se llama mi vista de informe. Por lo tanto, luchando un poco.

16 REPLIES 16
IanWaring
Helper III
Helper III

Todo arreglado. Terminé haciendo una limpieza masiva de datos antes de ponerlos en forma de informe, incluyendo ordenar y desduplicar las filas. Pero luego entrar en el editor avanzado para ajustar una función text.buffer alrededor de la ordenación descendente, justo antes de la desduplicación. Con eso, reconstruyó el informe y ahora está en vivo con todos nuestros usuarios.

¡Gracias! Ahora estoy subiendo la curva de aprendizaje a un ritmo bastante decente 🙂

IanWaring
Helper III
Helper III

Encontré un video que explicaba todo sucintamente, sugiriendo:

Ultima fecha ?
Var CurrentName á CustomersV3[OrganizationName]

devolución
MAXX(
FILTER( ALL( CustomersV3 ), CustomersV3[OrganizationName] - CurrentName),
FreeTextInvoiceHeaders[InvoiceDate])

Sin embargo, he vuelto a que falle con:
No se puede determinar un valor único para la columna 'InvoiceDate' en la tabla 'FreeTextInvoiceHeaders'. Esto puede suceder cuando una fórmula de medida hace referencia a una columna que contiene muchos valores sin especificar una agregación como min, max, count o sum para obtener un único resultado.

Los ejemplos parecen tener en cuenta que tiene una sola tabla delante de los datos de origen, no una vista de las uniones de base de datos filtradas, a menos que PowerBI tenga un nombre de tabla que refleje lo que puede ver delante de usted como un informe.

La frustración continúa. Mientras tanto, el vídeo de YouTube que se ve tan cerca es: Calcular el último valor o máximo dentro de una tabla de datos con DAX en Power BI - YouTube

... o tengo que crear un TABLE con nombre de al menos tres combinaciones de base de datos, filtrarlo y luego saltar a la vista de informe para finalizar el resumen. Estacionamiento para esta noche - no debería estar haciendo trabajo hoy de todos modos 🙂

IanWaring
Helper III
Helper III

He puesto una muestra de datos en tres hojas en un libro de Excel. La tarea consiste en unir FreeTextInvoiceHeaders a FreeTextOrderLines utilizando InvoiceIdentifer como combinación y, a continuación, a CustAgedBalances con Account Number como combinación. Busque todas las Líneas de Factura con "Subs HE" o "FE Subs" en InvoiceText, Enumere todas las Facturas y sus valores y, a continuación, ignore todas las líneas donde el Importe Pendiente es menor que el valor de la factura (es decir: parece que han pagado).

Terminará con un puñado de clientes con dos listas de facturas diferentes; Quiero que me quede con la última fecha para cada cliente.

Ahora, ¿dónde pongo mi libro de Excel?

IanWaring
Helper III
Helper III

FWIW, creando una medida:

LatestDate (Fecha más reciente)
SI(
COUNTROWS(FILTER(FreeTextInvoiceHeaders, FreeTextInvoiceHeaders[InvoiceDate] >-EARLIER( FreeTextInvoiceHeaders[InvoiceDate]) && FreeTextInvoiceHeaders[CustomerAccount] - EARLIER(FreeTextInvoiceHeaders[CustomerAccount]))) - 1, 1, 0)
resultados en:
EARLIER/EARLIEST hace referencia a un contexto de fila anterior que no existe.
Hará un poco más de excavación...
IanWaring
Helper III
Helper III

Difícil publicar los datos, ya que todo está sentado dentro de un sistema financiero de Dynamics 365 a través de un vínculo ODATA. Usando la consulta "relacionada" de Allison, agregándola como una columna, estoy obteniendo:

LatestDate (Fecha más reciente)
SI(
COUNTROWS(FILTER(FreetextInvoiceHeaders, RELATED(FreeTextInvoiceHeaders[InvoiceDate] ) >-EARLIER(RELATED(FreeTextInvoiceHeaders[InvoiceDate])) && RELATED(FreeTextInvoiceheaders[CustomerAccount]) ? EARLIER(RELATED(FreeTextInvoiceHeaders[CustomerAccount]))))

IanWaring_0-1608810326022.png

Sólo estoy tratando de eliminar los duplicados marcados en amarillo, manteniendo sólo la última fecha.

IanWaring
Helper III
Helper III

@AllisonKennedy Saludos a Nueva Zelanda desde el nivel 3 en el Reino Unido (¿podemos tener su PM por favor?).

Otras horas, tenemos uno de los anteriores attempst trabajo, pero estaba insertando 0 y 1 al azar - supongo que como hay otros pedidos en mi fuente de datos que mi vista se había filtrado. Así que han vuelto y han intentado poner el filtro en el componente FreeTextInvoiceHeaders y FreeTextinvoiceLines, pero golpear la pared de nuevo, no puede obtener ninguna medida ni columna usando las sugerencias para agregar.

También he intentado usar las combinaciones text.buffer y text.sort en los orígenes de datos sin éxito.

Incluso se quedó atascado tratando de hacer un MID de una cadena para extraer dos caracteres después de una palabra determinada, así que probablemente necesite alejarse de la pantalla y dejar que mi cabeza se desjugar.

Voy a hacer un poco de entrenamiento de Power BI sobre navidad (he utilizado un cierto otro producto del área de Seattle durante 8 años, así que sólo pasar por un período de ajuste aproximado a los matices de estos productos). Sólo tiene que ordenar la vista por cliente y fecha de factura descendente, a continuación, recortar todo excepto la 1a fila que se muestra para cada cliente. Actualmente está demostrando un poco de lucha 🙂

Hola

¿Podría compartir algunos datos y también mostrar el resultado esperado.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

@IanWaring Saludos desde la soleada Nueva Zelanda. Bueno, en realidad es un día ventoso hoy, pero no puedo quejarme. Veré si puedo tirar de algunas cuerdas en el frente del PM.

En términos de Power BI, hay muchos lugares en los que puede hacer el filtro, ¿no está seguro de qué pedidos cree que podrían estar estropeando el 0, 1? El 0 se aplicará a todas las demás condiciones, por lo que puedo ver que es aparentemente al azar, pero se puede dar un ejemplo de donde regresó 1 pero no debería haberlo hecho? Eso podría ayudarnos a averiguar qué está pasando en el conjunto de datos subyacente.



Has this post solved your problem? Please mark it as a solution so that others can find it quickly and to let the community know your problem has been solved. 


If you found this post helpful, please give Kudos. ?


I work as a trainer and consultant for Microsoft 365, specialising in Power BI and Power Query. 


www.excelwithallison.com

IanWaring
Helper III
Helper III

Gracias Allison (una vez más) 🙂

Tratando:

LatestDate (Fecha más reciente)
SI(
COUNTROWS('CustAgedBalances', 'FreeTextInvoiceHeaders'[InvoiceDate] >'EARLIER('FreeTextInvoiceHeaders'[InvoiceDate]) && 'FreeTextInvoiceheaders'[CustomerAccount] ? EARLIER('FreeTextInvoiceHeaders'[CustomerAccount])))

Pero conseguir:

No se puede determinar un valor único para la columna 'InvoiceDate' en la tabla 'FreeTextInvoiceHeaders'. Esto puede suceder cuando una fórmula de medida hace referencia a una columna que contiene muchos valores sin especificar una agregación como min, max, count o sum para obtener un único resultado.

Lo miraré una vez que tenga alguna preparación de reunión fuera del camino (normal antes de Navidad).

@IanWaring Sí, eso es porque [InvoiceDate] no está en la misma tabla que está filtrando. No puedo recordar (pero siento que sé esto de otro post o incluso de este subproceso), ¿es CustAgedBalances la tabla de hechos/SalesOrderLines?

Si es así, usted debe ser capaz de utilizar la función RELATED() creo:

LatestDate (Fecha más reciente)
SI(
COUNTROWS(FILTER('CustAgedBalances', RELATED('FreeTextInvoiceHeaders'[InvoiceDate] ) >-EARLIER(RELATED('FreeTextInvoiceHeaders'[InvoiceDate])) && RELATED('FreeTextInvoiceheaders'[CustomerAccount]) ? EARLIER('FreeTextInvoiceHeaders'[CustomerAccount]))
Si eso no funciona, puede agregar columnas explícitas como solución alternativa, pero eso no debería ser necesario.
Por favor, utilice el signo de la palabra para mencionarme en sus respuestas, y voy a seguirlas mañana (es muy tarde aquí en Nueva Zelanda, así que voy a firmar por la noche ahora).
¡Feliz Navidad!


Has this post solved your problem? Please mark it as a solution so that others can find it quickly and to let the community know your problem has been solved. 


If you found this post helpful, please give Kudos. ?


I work as a trainer and consultant for Microsoft 365, specialising in Power BI and Power Query. 


www.excelwithallison.com

IanWaring
Helper III
Helper III

Lo sentimos por las preguntas de novatos en serie, pero ¿dónde puedo encontrar el nombre de la tabla que está actualmente en mi vista de informe? Estoy recibiendo un error porque no sé qué sustituir por "Tabla" en los ejemplos. ¿O esto solo funciona en los archivos de datos de origen? (las cosas por las que filtro tienen valores en dos orígenes de datos unidos).

@IanWaring el nombre de la tabla en la fórmula probablemente será SalesOrderHeaders o SalesOrderLines, dependiendo de dónde se encuentren las columnas. Puede encontrar el nombre de las tablas en el panel de campos: todos los campos (también conocidos como columnas) se agrupan por nombre de tabla.



Has this post solved your problem? Please mark it as a solution so that others can find it quickly and to let the community know your problem has been solved. 


If you found this post helpful, please give Kudos. ?


I work as a trainer and consultant for Microsoft 365, specialising in Power BI and Power Query. 


www.excelwithallison.com

amitchandak
Super User IV
Super User IV

@IanWaring , Probar meaures como (con toda la medida que necesita en la fecha mínima

measure: calculate(max(Table[Fecha de la factura]), filter(Tabla,Tabla[Fecha de factura] , calculate(Min(Table[Fecha de factura]), allexpcept(Table,table[ID de factura]))))

measure: calculate(max(Table[Amount Due]), filter(Table,Table[Fecha de factura] , calculate(Min(Table[Fecha de factura]), allexpcept(Table,table[ID de factura]))



Did I answer your question? Mark my post as a solution! Appreciate your Kudos!!
Dashboard of My Blogs !! YouTube Channel !! Connect on Linkedin

Proud to be a Super User!

AllisonKennedy
Super User III
Super User III

@IanWaring

¿Cuáles son las tablas sin procesar antes de que las uniones se fusionen, etc.?

De lo contrario, si los datos que pegó anteriormente están todos en una tabla, podría agregar una columna que marque la fecha más reciente:

LatestDate (Fecha más reciente)
SI(
COUNTROWS(FILTER('Table', 'Table'[Fecha de la factura] >'EARLIER('Table'[Fecha de la factura]) && 'Tabla'[Cliente] - EARLIER('Table'[Customer]))) - 1, 1, 0)


Has this post solved your problem? Please mark it as a solution so that others can find it quickly and to let the community know your problem has been solved. 


If you found this post helpful, please give Kudos. ?


I work as a trainer and consultant for Microsoft 365, specialising in Power BI and Power Query. 


www.excelwithallison.com

Helpful resources

Announcements
PBI User Groups

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group!

MBAS on Demand

Microsoft Business Applications Summit sessions

On-demand access to all the great content presented by the product teams and community members! #MSBizAppsSummit #CommunityRocks

Get Ready for Power BI Dev Camp

Power BI Dev Camp - June 24th

Mark your calendars and join us for our next Power BI Dev Camp!