Foro Empleos Cursos Blog
Recursos
  • Ejemplos de dashboards
  • DatData Games
  • Alumnos destacados
  • Ranking
  • Torneos pasados
  • Tests
Iniciar sesión Inscribirme
Back arrow

Apoyo para mostrar una visualización correcta

Avatar por defecto

Germain M.

Estudiante

•

hace 3 días

Buen día.
Espero se encuentren bien.
Tal vez sea muy simple la respuesta y ya se haya visto en alguna clase pero aún no doy con ella, espero explicarme de la forma correcta para darme a entender.

Tengo varias tablas:
* Base - Contiene la base de clientes
* Ventas - Contiene solamente el número de cliente, el día y la venta de ese día
* Días - Contiene el día del mes y la semana que se le asigno manualmente (esto se hace porque la semana no se considera de forma natural),
* Contacto - Contiene la base de los clientes que tuvieron contacto y los que no (1,0)

Lo que quiero mostrar son cuantos clientes tuvieron compra y cuantos se contactaron por semana.
y al final un acumulado.

Para que se vea algo así:
image.png 18.74 KB


El detalle es que cuando hago una medida para que me cuente solo los que tienen contacto, me salen todos iguales.

image.png 16.85 KB


Espero me puedan referenciar a alguna de las clases para revisar el tema a detalle.


Gracias por la atención.

Saludos.


Power Query

0 Votos
2
Respuestas
Respuestas
Avatar de Asistente Virtual Datdata

Asistente Virtual Datdata

Equipo Datdata

•

respondió hace 3 días

🤖 Esta respuesta fue generada automáticamente por nuestra inteligencia artificial local. Es un intento único de ayudarte al instante. No responderá a mensajes posteriores en este hilo.

Hola, gracias por tu consulta y por compartir tu experiencia.

Entiendo que estás trabajando en un reporte donde necesitas calcular la cantidad de clientes que realizaron una compra y cuántos fueron contactados, esto por semana, y además necesitas un acumulado. Mencionas que al crear una medida para contar los contactos, todos te aparecen iguales, y sospechas que podría ser por cómo se relacionan las tablas o la configuración de la fecha.

Basándome en la información y los fragmentos de texto proporcionados, aquí hay una explicación y una posible solución:

Problema: Contar Clientes con Compra y Clientes Contactados

El problema de que todos te aparezcan iguales al contar clientes con contacto, y no se refleje el filtro por semana, probablemente se deba a cómo se está aplicando el contexto de filtro en tus medidas.

Cuando quieres contar los clientes que cumplieron dos condiciones (tuvieron compra Y fueron contactados), necesitas asegurarte de que tu medida DAX esté evaluando estas condiciones correctamente dentro del contexto de la semana.

Solución con DAX: Medidas para Clientes con Compra y Clientes Contactados

Para lograr lo que necesitas, deberás crear medidas DAX que cuenten los clientes únicos que cumplen ambas condiciones (compraron Y fueron contactados) para cada semana.

Asumiendo que tienes:

  • Una tabla `Ventas` con `[CustomerID]` y `[Fecha]`
  • Una tabla `Contactos` con `[CustomerID]` y `[FechaContacto]` (o alguna columna que indique el contacto)
  • Una tabla `d_Calendario` relacionada con ambas tablas por la fecha.

Aquí hay un ejemplo de cómo podrías crear estas medidas:

1. Medida para Clientes con Compra:

Esto cuenta los clientes únicos que tienen al menos una venta en el contexto de filtro (ej. la semana actual).

Clientes con Compra = 
COUNTROWS(
    VALUES(Ventas[CustomerID]) // Cuenta los clientes únicos de la tabla Ventas
)

2. Medida para Clientes Contactados:

Esto cuenta los clientes únicos que tuvieron algún tipo de contacto.

Clientes Contactados = 
COUNTROWS(
    VALUES(Contactos[CustomerID]) // Cuenta los clientes únicos de la tabla Contactos
)

3. Medida para Clientes con Compra Y Contacto (la más relevante para tu duda):

Aquí es donde `CALCULATE` se vuelve crucial para aplicar ambos filtros al mismo tiempo.

Clientes con Compra Y Contacto = 
CALCULATE(
    [Clientes con Compra], // O puedes usar COUNTROWS(Ventas) directamente aquí
    FILTER(
        ALL('d_Calendario'[MesAño]), // Quita el filtro de mes si solo quieres el total general, o ajusta según tu necesidad
        NOT ISBLANK('Contactos'[CustomerID]) // Asegura que el cliente tenga un registro de contacto
    )
)

Explicación de la medida de Clientes con Compra Y Contacto:

  • `CALCULATE`: Es la función que nos permite modificar el contexto.
  • `[Clientes con Compra]`: La expresión que queremos evaluar.
  • `FILTER(ALL('d_Calendario'[MesAño]), NOT ISBLANK('Contactos'[CustomerID]))`: Este es el filtro. `ALL('d_Calendario'[MesAño])` quita cualquier filtro aplicado al mes en el contexto actual (si lo quisieras para el total general), y luego `FILTER` asegura que solo se consideren los clientes que tienen un contacto registrado. Si tu tabla `Contactos` solo tiene un registro para cada cliente contactado, `NOT ISBLANK` funciona bien. Si necesitas que el contacto haya ocurrido en un período específico, deberías refinar este filtro para incluir la fecha de contacto.

Para contar el Acumulado:

Si quieres un acumulado (por ejemplo, acumulado hasta la fecha o hasta el mes actual), usarías funciones de inteligencia de tiempo como `TOTALYTD`, `TOTALQTD`, `TOTALMTD`, o construirías una lógica similar con `CALCULATE` y `DATEADD`.

Por ejemplo, un acumulado de clientes con compra hasta la fecha:

Clientes con Compra Acumulado = 
TOTALYTD(
    [Clientes con Compra], 
    d_Calendario[Fecha]
)

Espero que esto te sea de ayuda. La correcta relación de tus tablas (Ventas, Contactos, Empleados y Calendario) es fundamental para que estas medidas funcionen como esperas.

Te sugiero visitar:

https://www.datdata.com/cursos/pbi101/clases/rXwqr6

Esta clase es una excelente introducción a DAX y a la función `CALCULATE`, que es esencial para crear estas medidas con filtros.

0 Votos
Avatar de Sarai Rábago

Sarai R.

Equipo Datdata

•

respondió hace 1 día

Hola Germain,

Puede que este mostrando el mismo valor para todas las semanas porque ambas tablas no se encuentren seleccionadas. 
También te comparto como quedaría la medida:

Clientes Contactados =
CALCULATE(
    DISTINCTCOUNT(Contacto[Cliente]),
    Contacto[Contacto] = 1
)

¡Saludos!
0 Votos
Es necesario estar inscrito para dejar tu duda, comentario y/o respuesta

Sobre el alumno

GermainMercado

Germain M.

Cursos completados

Imagen del curso Análisis y Visualización de Datos con Excel

Más preguntas sobre el tema

Mapeos

Carlosnavi

Problema al dividir la columna

GermainMercado

¿Cómo conectarse a una base de datos de acces con contraseña?

JesusRobles250

aggregaciones

Esme

Medida

LucasGP

Recursos
  • Foro
  • Inscribirse
  • Blog
  • Ejemplos de dashboards
Cursos
  • Aprende Power BI con Proyectos
  • Análisis de Datos con Power BI y Excel
  • Especialización en Power Query
  • Certificación de Power BI
  • Tu Portafolio de Dashboards
Legales
  • Términos del servicio
  • Política de privacidad
  • Política de cookies
  • Contacto
  • Acerca
Canal de YouTube de datdata Cuenta de Linkedin de datdata Cuenta de Instagram de datdata Página de Facebook de datdata Cuenta de TikTok de datdata
© 2026 © datdata - Todos los derechos reservados

Confirmar eliminación

Para eliminar esta participación, por favor ingrese su contraseña.