Syndicate_Admin
Buenos días/tarde/noche PowerBI’ers 😀
Estoy buscando ayuda en un proyecto que me gustaría llevar a cabo en BI (Este es uno de mis primeros enfoques para BI, tener un conocimiento profundo en PowerApp & Flow en su lugar).
El alcance del proyecto es:
Dado un número «X» de archivos de Excel como entrada, que se guardan en Sharepoint, tienen la posibilidad de comparar directamente dos de ellos a la vez y presentar / visualizar esas filas que se encuentra una diferencia, ya sea:
– Las mismas filas con diferentes valores de columna entre los dos archivos
– Nuevas filas que existen solo en uno de los dos archivos comparados
Donde estoy con esto:
– Puedo importar como conjunto de datos únicos todos los archivos de la carpeta de sharepoint especificado, donde el «Nombre de origen» es en realidad una columna transportada
– Puedo mostrar uno al lado del otro, filtrando el nombre de origen, el contenido de los archivos.
¿Cuál sería el siguiente paso:
– Generar una tercera tabla, con el tipo de diferencias antes mencionadas
Información adicional / pregunta técnica:
En términos generales de «Modelado de datos» probablemente no sería «mejor» ya en la consulta de entrada de datos, para generar diferentes tablas de datos basadas en el nombre de origen? ¿Para que ya estén empacados y listos para ser usados / comparados?
Syndicate_Admin
En respuesta a Syndicate_Admin
@laratari
Aquí hay una manera. (Disculpas desde que trabajé en un conjunto de datos de ejemplo)
1) Cree dos tablas desconectadas para usarlas como segmentaciones de datos con los valores únicos para los nombres de archivo. Asi es como se ve mi modelo:
2) agregue una columna («String» en el ejemplo my) que concatena los valores de cada columna de la tabla que contenga las filas anexadas de todas las tablas
3) Cree una medida para usarla en el panel de filtro de la segmentación por sectores 2. Este filtro filtrará los valores que seleccionamos en la segmentación de datos 1 de la segmentación de datos 2:
Filter Slicer 2 = COUNTROWS(EXCEPT('File Slicer 2', 'File Slicer 1'))
3) Crear una medida para devolver las filas que no están presentes en ambas tablas
Different Rows =
VAR Table1 = CALCULATETABLE(VALUES('Full Table'[String]), FILTER('Full Table', 'Full Table'[File] = SELECTEDVALUE('File Slicer 1'[File])))
VAR Table2 = CALCULATETABLE(VALUES('Full Table'[String]), FILTER('Full Table', 'Full Table'[File] = SELECTEDVALUE('File Slicer 2'[File])))
RETURN
IF(OR(COUNTROWS(EXCEPT(Table1, Table2)) =1, COUNTROWS(EXCEPT(Table2, Table1)) =1), 1)
4) Crear una medida para devolver el nombre de archivo de cada fila en función de la medida anterior
File with unique row =
CALCULATE(SELECTEDVALUE('Full Table'[File]), FILTER('Full Table', [Different Rows] =1))
Ahora puede crear un objeto visual utilizando los campos de la tabla y esta medida [Archivo con fila única]:
Esta tabla muestra las filas que son exclusivas de los dos archivos seleccionados en las segmentaciones de datos.
5) obtener las filas que tienen diferentes valores en algunas columnas es más complicado. Para mi ejemplo, que los archivos tienen solo 3 columnas, cree esta medida para usarla como filtro:
Rows with diff values =
VAR Channel = CALCULATE(COUNT('Full Table'[Channel]), FILTER(ALLEXCEPT('Full Table', 'Full Table'[Channel]), [Different Rows] = 1))
VAR _Item = CALCULATE(COUNT('Full Table'[Item]), FILTER(ALLEXCEPT('Full Table', 'Full Table'[item]), [Different Rows] = 1))
VAR _Code = CALCULATE(COUNT('Full Table'[Code]), FILTER(ALLEXCEPT('Full Table', 'Full Table'[Code]), [Different Rows] = 1))
RETURN
Channel + _Item + _Code
A continuación, puede realizar una copia del objeto visual principal y agregar esta medida en el panel de filtros para el objeto visual
Él estableció el umbral en mayor de 3 porque mi conjunto de datos solo tiene tres columnas (aparte de la columna calculada para «String» que agregó más tarde). podría modificar la medida para atender el número de columnas y ajustar el umbral en consecuencia.
Este es el resultado final:
He adjuntado el archivo PBIX de ejemplo para su referencia
Syndicate_Admin
Buenos días @v-yuaj-msft , gracias por su respuesta!
Por favor, encuentre aquí un ejemplo de dos archivos de entrada y un resultado ideal (We Transfer Link) en Excel.
Tenga en cuenta que la configuración ideal en PowerBI aceptará / cargará / tomará como entrada un conjunto completo de carpetas de archivos de Excel, pero luego comparará «dinámicamente» en una tercera tabla / visualización sólo los dos que se están seleccionando en los filtros.
A continuación se muestra un ejemplo de configuración de mi pantalla ideal en PowerBI:
Syndicate_Admin
En respuesta a Syndicate_Admin
@laratari
Aquí hay una manera. (Disculpas desde que trabajé en un conjunto de datos de ejemplo)
1) Cree dos tablas desconectadas para usarlas como segmentaciones de datos con los valores únicos para los nombres de archivo. Asi es como se ve mi modelo:
2) agregue una columna («String» en el ejemplo my) que concatena los valores de cada columna de la tabla que contenga las filas anexadas de todas las tablas
3) Cree una medida para usarla en el panel de filtro de la segmentación por sectores 2. Este filtro filtrará los valores que seleccionamos en la segmentación de datos 1 de la segmentación de datos 2:
Filter Slicer 2 = COUNTROWS(EXCEPT('File Slicer 2', 'File Slicer 1'))
3) Crear una medida para devolver las filas que no están presentes en ambas tablas
Different Rows =
VAR Table1 = CALCULATETABLE(VALUES('Full Table'[String]), FILTER('Full Table', 'Full Table'[File] = SELECTEDVALUE('File Slicer 1'[File])))
VAR Table2 = CALCULATETABLE(VALUES('Full Table'[String]), FILTER('Full Table', 'Full Table'[File] = SELECTEDVALUE('File Slicer 2'[File])))
RETURN
IF(OR(COUNTROWS(EXCEPT(Table1, Table2)) =1, COUNTROWS(EXCEPT(Table2, Table1)) =1), 1)
4) Crear una medida para devolver el nombre de archivo de cada fila en función de la medida anterior
File with unique row =
CALCULATE(SELECTEDVALUE('Full Table'[File]), FILTER('Full Table', [Different Rows] =1))
Ahora puede crear un objeto visual utilizando los campos de la tabla y esta medida [Archivo con fila única]:
Esta tabla muestra las filas que son exclusivas de los dos archivos seleccionados en las segmentaciones de datos.
5) obtener las filas que tienen diferentes valores en algunas columnas es más complicado. Para mi ejemplo, que los archivos tienen solo 3 columnas, cree esta medida para usarla como filtro:
Rows with diff values =
VAR Channel = CALCULATE(COUNT('Full Table'[Channel]), FILTER(ALLEXCEPT('Full Table', 'Full Table'[Channel]), [Different Rows] = 1))
VAR _Item = CALCULATE(COUNT('Full Table'[Item]), FILTER(ALLEXCEPT('Full Table', 'Full Table'[item]), [Different Rows] = 1))
VAR _Code = CALCULATE(COUNT('Full Table'[Code]), FILTER(ALLEXCEPT('Full Table', 'Full Table'[Code]), [Different Rows] = 1))
RETURN
Channel + _Item + _Code
A continuación, puede realizar una copia del objeto visual principal y agregar esta medida en el panel de filtros para el objeto visual
Él estableció el umbral en mayor de 3 porque mi conjunto de datos solo tiene tres columnas (aparte de la columna calculada para «String» que agregó más tarde). podría modificar la medida para atender el número de columnas y ajustar el umbral en consecuencia.
Este es el resultado final:
He adjuntado el archivo PBIX de ejemplo para su referencia
Syndicate_Admin
En respuesta a Syndicate_Admin
@PaulDBBrown
¡Muchas gracias por su respuesta, está tan lleno de información valiosa para mí!
Me tomaré mi tiempo ahora para estudiarlo, y espero poder adaptarlo a mis necesidades específicas – de hecho el ejemplo que obtenga es EXACTAMENTE lo que estaba buscando – de nuevo, ¡GRACIAS!
Syndicate_Admin
No @laratari,
Tal vez no estoy recibiendo lo que realmente estás tratando de hacer. ¿Desea crear una nueva tabla basada en dos tablas diferentes o simplemente desea comparar dos tablas?
Puede utilizar la función LOOKUP() para agregar una nueva columna calculada o crear una relación entre dos tablas con una clave única y crear un objeto visual de matriz.
¿Podría compartir algunos datos de muestra y el resultado esperado para tener una comprensión clara de su pregunta? Puedo hacerte algunas pruebas.
Puede guardar sus archivos en algunas plataformas de uso compartido de la nube y compartir el enlace aquí.
Cómo proporcionar datos de ejemplo en el Foro de Power BI – Comunidad de Microsoft Power BI
Saludos
Yuna