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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Filtrado por tipo de cuenta y fecha

Hola a todos,

Tengo 3 conjuntos de datos (fac_products, fac_services y dim_date).

La conexión entre el fac_tables es la account_id.

Encuentre a continuación la estructura de la tabla:

bdpr_95_1-1670023005570.png

El primer paso es crear una nueva tabla, en la que para el products_table si solo tengo 1 producto activo, entonces tengo una columna "account_type" que me indica el nombre del producto, cuando ambos están activos tienen "dual" y cuando vuelve a tener solo 1 producto activo el nombre del producto nuevamente.
A continuación se muestra un ejemplo de lo que necesito.

bdpr_95_3-1670023148909.png

El último paso es tener un informe que me permita filtrar por fecha y por tipo de cuenta.
Por ejemplo, si filtré para enero de 2022 y en el tipo de cuenta para Mono - Producto A, aparecería 1 servicio activo en el gráfico de donas (Servicio A).
Si filtro para julio de 2022 y para Dual (en el tipo de cuenta) aparecerían 2 servicios: Servicio A y Servicio B.
A continuación se muestra el diseño de lo que necesito:

bdpr_95_6-1670024042000.png

¿Alguien sabe cómo hacer esto?

¿Es posible crear una tabla para darme el tipo de cuenta? ¿Cuál es la mejor manera? ¿Power Query o DAX?

¡Gracias!

8 REPLIES 8
Syndicate_Admin
Administrator
Administrator

Proporcione datos de muestra desinfectados que cubran completamente su problema.
https://community.powerbi.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-Forum/ba-...
Muestre el resultado esperado en función de los datos de muestra que proporcionó.

https://community.powerbi.com/t5/Desktop/How-to-Get-Your-Question-Answered-Quickly/m-p/1447523

Hola @lbendlin encontrar a continuación los datos y la salida esperada:

-Datos:

Tabla de productos

acct_idacct_start_dateacct_end_dateproduct_idproduct_nameproduct_start_dateproduct_end_date
101/01/202231/12/20225Producto A01/01/202231/07/2022
101/01/202231/12/202236Producto B01/06/202231/12/2022

Tabla de servicios

acct_idacct_start_dateacct_end_dateservice_idservice_nameservice_start_dateservice_end_date
101/01/202231/12/202245Servicio A01/01/202231/12/2022
101/01/202231/12/202286Servicio B01/06/202231/12/2022

- Resultado esperado:

acct_idacct_start_dateacct_end_dateaccount_typestart_dateend_date
101/01/202231/12/2022Mono - Producto A01/01/202231/05/2022
101/01/202231/12/2022Dual01/06/202231/07/2022
101/01/202231/12/2022Mono - Producto B01/08/202231/12/2022

¡Gracias!

No estoy seguro de qué tipos de cuentas tienen que ver con esto, pero aquí hay una propuesta alternativa sobre cómo estructurar sus datos y cómo visualizarlos.

@lbendlin gracias por la respuesta rápida, pero eso no es lo que necesito.

El objetivo de esto es que la empresa entienda para una fecha determinada cuántos servicios tiene por tipo de cuenta.
Ejemplo:
Business Unit filtra para julio de 2022 y quiere saber cuántos servicios tenemos para cuentas "Dual".
Luego voy al filtro de fecha y pongo julio de 2022 y voy al filtro de tipo de cuenta y pongo "Dual". Lo que se supone que el gráfico de donas me muestra son 2 servicios divididos por tipología (en este caso 1 Servicio A y otro Servicio B).
Si cambié el filtro a enero de 2022 y establecí el filtro en "Dual", ya no debería ver ningún servicio para ese tipo de cuenta, ya que en esa fecha el tipo de cuenta era "Producto A".

¿Entendiste la lógica?

Sigues mencionando el tipo de cuenta, pero no lo veo en los datos de muestra. Proporcione datos de muestra que cubran completamente su problema.

Observe el resultado esperado (después de la columna de fecha de finalización de la cuenta).

@bdpr_95 ,

Si entiendo correctamente, le gustaría obtener el tipo de cuenta primero basado en los productos activos. A continuación, desea obtener la información del servicio por el tipo de cuenta filtrada y el intervalo de fechas seleccionado. No tengo clara la lógica del backend sobre cómo obtener el tipo de cuenta y la información del servicio, ¿podría explicarlo con más detalles (algunos ejemplos específicos, captura de pantalla, etc.)? Gracias.

Saludos

Hola, @yingyinr tu lógica es correcta.

Todos los días se actualizan los datos de los productos y los datos de los servicios. Básicamente, la lógica de negocio es: adquiero productos (puedo tener varios productos pero solo 2 activos el resto tienen que estar en "estado inactivo") y puedo suscribir servicios. El servicio es como un seguro para el producto que adquiero y puedo tener más de un servicio por cuenta.

No sé si lo que necesito es posible desarrollar en Power Bi, pero lo que quiero son dos filtros, uno es la fecha y el otro es el tipo de cuenta.

Traté de desarrollar un ejemplo, en este pbix tengo la tabla de productos, tabla de servicios y creé una nueva tabla (manualmente) que me da el tipo de cuenta.

El ejemplo tiene 3 cuentas (imagina que estamos en enero de 2023):

- 1 cuenta con 2 productos inactivos y 2 servicios inactivos;

- 1 cuenta con 1 producto activo y 1 servicio activo;

- 1 cuenta con 1 producto inactivo sin servicios.

Si filtro antes de julio de 2022 y selecciono "Todo" para el filtro Tipo de cuenta, lo que pretendo ver es un gráfico de rosquillas con 1 servicio A y 2 servicio B.

Si filtro por "Dual" (y la fecha del filtro permanece sin cambios) quiero ver 1 servicio A y 1 servicio B.

Para concluir, lo que necesito saber es si es posible hacer esta tabla de tipo de cuenta (u otro enfoque que me permita tener el tipo de cuenta) y luego si es posible tener este filtro y que pueda relacionarse con la métrica que creé de "# servicios activos" (en el ejemplo.pbix que desarrollo no está bien relacionado porque a pesar de la conexión entre tablas no hay factor de fecha lo que hace que los resultados sean incorrectos).

Código products_table

dejar
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUTIw1AciIwMjIyDH2FDf0AjGMQXigKL8lNLkEgVHLCoNzCGcWB1CJhmbIRnlBFVqhkUpyCgjqLwxTB6ITLC5BaEApM0Yw1gDfUMDGMfCFK8LEEpjYwE=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [acct_id = _t, acct_start_date = _t, acct_end_date = _t, product_id = _t, product_name = _t, product_start_date = _t, product_end_date = _t]),
#"Tipo cambiado" = Table.TransformColumnTypes(Origen,{{"acct_id", Int64.Tipo}, {"acct_start_date", tipo fecha}, {"acct_end_date", tipo fecha}, {"product_id", Int64.Type}, {"product_name", escriba text}, {"product_start_date", escriba fecha}, {"product_end_date", escriba fecha}})
en
#"Tipo cambiado"

Código services_table

dejar
Origen = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUTIw1AciIwMjIyDH2FDf0AjGMTEFEsGpRWWZyakKjniUxuoQMsrCDMkoJ6hSMxxGGUHljWHyQGRpiWaAoSmygthYAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [acct_id = _t, acct_start_date = _t, acct_end_date = _t, service_id = _t, service_name = _t, service_start_date = _t, service_end_date = _t]),
#"Tipo cambiado" = Table.TransformColumnTypes(Origen,{{"acct_id", Int64.Tipo}, {"acct_start_date", tipo fecha}, {"acct_end_date", tipo fecha}, {"service_id", Int64.Type}, {"service_name", escriba text}, {"service_start_date", escriba fecha}, {"service_end_date", escriba fecha}})
en
#"Tipo cambiado"

account_type_code

dejar
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUTIw1AciIwMjIyDH2FDf0AjG8c3Py1fQVQgoyk8pTS5RcMSi2MAUwonVIWSYS2liDlSBGbIB5sQagOYaJ6hiCyyKQYYZQeWNYfK4PYRQAtJojOFKA31DAwKuwKY4NhYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [acct_id = _t, acct_start_date = _t, acct_end_date = _t, account_type = _t, start_date = _t, end_date = _t]),
#"Tipo cambiado" = Table.TransformColumnTypes(Origen,{{"acct_id", Int64.Tipo}, {"acct_start_date", tipo fecha}, {"acct_end_date", tipo fecha}, {"account_type", escriba texto}, {"start_date", escriba fecha}, {"end_date", escriba fecha}})
en
#"Tipo cambiado"

#active_services medida:

# active_services =
DÓNDE Datos =
..MAX(Dim_Date[Fecha])
DEVOLUCIÓN
CALCULAR(
DISTINCTCOUNT(fact_services_table[service_id]),
TODO(dim_Date[Fecha]),
fact_services_table[service_start_date] <> ESPACIO EN BLANCO(),
fact_services_table[service_start_date] <= Datos,
O(
fact_services_table[service_end_date] > Datos,
fact_services_table[service_end_date] = ESPACIO EN BLANCO()
)
)
dim_date
bdpr_95_0-1670244368017.png

Modelo de relación

bdpr_95_1-1670244400519.png

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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