Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
3 years ago

Crear un objeto visual Table en Power Bi

Quiero crear un objeto visual de tabla en Power Bi como no. de cuentas y pagos atrasados (en el no. de días).

¿Y si quiero algo así?

Pagos atrasados (en días) No. de Cuentas

0+ 5000

30+ 3800

60+ 2700

90+ 2300

Y así sucesivamente ... ¿Es posible en Power Bi?

9 Replies

  • @anmolkatia , si días está en la columna, puede crear una nueva columna

    Switch(True() ,

    [Días] <30 , " 0+",

    [Días] <60 , " 30+",

    [Días] <90 , " 60+",

    "90+"

    )

    Y usa esta nueva columna en visual junto con otras medidas

    si los días son medidos, entonces necesitas segmentación dinámica

    Agrupación dinámica Bucketing Binning
    https://community.powerbi.com/t5/Quick-Measures-Gallery/Dynamic-Segmentation-Bucketing-Binning/m-p/1387187#M626


    Segmentación dinámica, bucketing o binning: https://youtu.be/CuczXPj0N-k

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Hola amitchandak, Gracias por responder. Pero esto no es lo que estaba buscando. Esto solo creará losas / contenedores / grupos. El valor particular es parte de un solo grupo.

      Pero en el caso que estoy buscando...

      0+ Se considerarán todos los valores excepto 0.

      30+ Se considerarán todos los valores superiores a 30

      Pero en el caso que has mencionado. 0-30 será considerado y 31-60 será considerado.

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        @anmolkatia, Como estos valores no son mutuamente excluyentes, primero cree una medida para todos ellos y luego cree un grupo de cálculo o use Cambiar valores en fila en matriz

        0+ = calcular([Meausre], filter(Tabla, Tabla[Edad] >0))

        30+ = calcular([Meausre], filter(Tabla, Tabla[Edad] >30))

        Opción de matriz

        Grupos de cálculo: segmentación de datos de medidas, agrupación de encabezados de medida, conversión de medida a cota. Visualización de tabla compleja : https://youtu.be/qMNv67P8Go0

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Hola Mahesh, Gracias por responder. Pero esto no es lo que estaba buscando. Esto solo creará losas / contenedores / grupos. El valor particular es parte de un solo grupo.

      Pero en el caso que estoy buscando...

      0+ Se considerarán todos los valores excepto 0.

      30+ Se considerarán todos los valores superiores a 30

      Pero en el caso que has mencionado. 0-30 será considerado y 31-60 será considerado.

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        @anmolkatia ¿Puede compartir datos de muestra y salida de muestra en formato de tabla? O un pbix de muestra después de eliminar datos confidenciales.

  • @anmolkatia

    Supongamos que tiene los siguientes datos:

    ActualDateFecha de vencimientoHuecoOficina
    10/5/202210/1/2022-410
    10/28/202211/1/2022450
    11/30/202212/1/2022170
    12/26/20221/1/20236100
    1/31/20232/1/2023110
    2/20/20233/1/2023990
    3/22/20234/1/20231090
    4/27/20235/1/2023410

    Para obtener lo que espera, necesitaría:

    1) crear otra tabla de segmentación desde Exel o con DAX, como esta:

    GapSegmentMinMáximo
    <0-5-1
    0-505
    6-10610

    (Nota: no es necesario relacionar las tablas.)

    2) Escribe una medida como esta:

    SegAmt = 
    VAR _min = MIN(segment[Min])
    VAR _max = MAX(segment[Max])
    RETURN
    CALCULATE(
        SUM(data[Amt]),
        data[Gap]>=_min
            && data[Gap] <=_max
    )

    3) trace la medida con la columna [GapSegment] en un objeto visual de tabla.

    Lo intenté y funcionó así:

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      @anmolkatia

      Acabo de notar que querías un total acumulativo, entonces

      Supongamos que tiene los siguientes datos:

      ActualDateFecha de vencimientoHuecoOficina
      10/5/202210/1/2022-410
      10/28/202211/1/2022450
      11/30/202212/1/2022170
      12/26/20221/1/20236100
      1/31/20232/1/2023110
      2/20/20233/1/2023990
      3/22/20234/1/20231090
      4/27/20235/1/2023410

      Para obtener lo que espera, necesitaría:

      1) cree otra tabla de segmentación llamada segment2 desde Exel o con DAX, como esta:

      GapSegmentMinMáximo
      <0-5-1
      <5-55
      <10-510

      (Nota: no es necesario relacionar las tablas.)

      2) Escribe una medida como esta:

      Seg2Amt = 
      VAR _min = MIN(segment2[Min])
      VAR _max = MAX(segment2[Max])
      RETURN
      CALCULATE(
          SUM(data[Amt]),
          data[Gap]>=_min
              && data[Gap] <=_max
      )

      3) trace la medida con la columna [GapSegment] en un objeto visual de tabla.

      Lo intenté y funcionó así:

      Así que ya ves, el punto es crear una tabla de segmentación independiente.

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        Muchas gracias. Funcionó sin problemas y una explicación increíble.