Filtrar datos usando múltiples columnas

Un usuario Pregunto ✅

jcd

Esto parece que debería ser bastante simple, pero estoy luchando por descubrir cómo hacer esto con power bi. Básicamente tengo la siguiente estructura.

Tabla de agentes

AgentId, nombre, etc.

Tabla de transacciones

ID de transacción, fecha, precio, agente principal 1, agente principal 2, agente cooperativo 1, agente cooperativo 2

Quiero una seccionadora que me permita ver todas las transacciones en las que está involucrado un agente, lo que significa que podría ser un agente principal o un agente cooperativo, por lo que su identificación de agente podría estar en cualquiera de esas cuatro columnas. Quiero un cortador de texto donde pueda seleccionar el nombre de la tabla de agentes y llenará una matriz con la transacción en la que participó el agente.

Parece que no puedo hacer que el filtrado funcione. He seguido el camino de tener múltiples relaciones entre la tabla de agentes y la tabla de transacciones, luego usé la siguiente medida dax para «activar» las relaciones inactivas (Colist1 = CALCULATE (VALUES (biAgent[id]), USERELATIONSHIP (transacción[coop_id1], biAgent[id])) en la tabla biAgent. ¿Es este el camino correcto?

Se agradece cualquier idea.

Smauro

Hola @jcd. Supongo que la tabla Transaction está llena de AgentIds y no AgentNames. De lo contrario, la misma medida funcionaría para los nombres de los agentes.

La idea es que cree una cortadora con el ‘biAgent'[id] y luego calcula la suma de precios donde aparece la identificación del agente en una de las cuatro columnas (al menos ese es el cálculo de mi medida, podría hacer lo mismo para cualquier otra cosa que desee calcular).

AgentSums =
VAR x =
    SELECTEDVALUE ( 'biAgent'[id], "Error" )
RETURN
    IF (
        x = "Error",
        x,
        CALCULATE (
            SUM ( [price] ),
            FILTER (
                'biTransaction',
                'biTransaction'[primary agent 1] = x
                    || 'biTransaction'[primary agent 2] = x
                    || 'biTransaction'[coop agent 1] = x
                    || 'biTransaction'[coop agent 2] = x
            )
        )
    )

Al final se ve así:

2017-12-27 16_55_21-PlayForum - Power BI Desktop.png

jcd

En respuesta a Smauro

Hola Smauro – Gracias por la pista. ¿No tienes un .pbix que puedas compartir? Todavía soy relativamente nuevo con Power BI (un par de semanas) tratando de comprender el mejor enfoque para la herramienta.

Smauro

En respuesta a jcd

¡Seguro @jcd! Aquí tienes: https://drive.google.com/open?id=14BQxJX6z4YD1wweLVaByMveQBNx-FXdI

jcd

En respuesta a Smauro

Ah, está bien, todavía tenía una relación entre el agente y las tablas de transacciones, por lo que no veía el total correcto. Agradezco mucho el consejo, parece una buena solución a mi problema. Quiero ver si puedo extraer totales como «10 agentes principales» para el año fiscal 2017 por volumen en dólares, con las transacciones correspondientes.

En respuesta a jcd

Hola @jcd,

Después de la prueba, marque la respuesta correcta como respuesta si ha resuelto el problema. No dude en preguntar si tiene otro problema. Por favor, dénos su respuesta lo antes posible.

Gracias,
Angelia

Hola @jcd,

Slicer se utiliza para filtrar filas en la tabla. Para su requerimiento, necesita crear medidas para obtener la transacción en la que participó el agente. Consulte la solución detallada en los siguientes subprocesos; puede descargar el archivo .pbix para probarlo.

Tabla de filtros basada en dos columnas
¿Cómo puedo unir tablas con OR en condición en el informe?

No dude en preguntar si tiene algún otro problema.

Atentamente,
Angelia

jcd

En respuesta a v-huizhn-msft

Gracias por la respuesta. Probé la solución y puedo hacer que se ordene como describió / demostró en su test.pbix. Dicho esto, no puede sumar ni informar ningún total significativo con este enfoque. Parece Y todo de tal manera que si agrega una columna como decir «valor de la oferta» y desea resumir el valor de las ofertas en las 4 columnas, no parece posible.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *