Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
3 years ago

hola

hola

Tengo una tabla de ventas donde tengo valor vendido y devolución. Cuando se vende, el número de factura es normal, un número, pero cuando se devuelve, hay CR al principio y CR o número de factura de devolución no es el mismo que el número de factura vendido. En algún momento el cliente devuelve todos los artículos completos o todos los artículos en algún momento artículos pertiales

Número de factura Importe neto
221101 150
221102 130
221103 200
221104 120
CR999999 -120
221105 80
221106 40
CR888888 -20
221107 15

ahora, cuando intento encontrar el valor de AVG Busket, ya elimino las facturas que comienzan con CR

entonces mi clculación sería (150 + 130 + 200 + 80 + 20 +15) / 6 = 99.16 AVG busket vlue

no debería agregar120 (221104 y CR999999) como retorno completo y debería agregar 20 (221106 y CR888888) como retorno pertial

Así que aquí sumo todos los valores positivos y luego lo divido con todos los valores positivos, no por números de factura.

Si estoy en lo correcto, por favor ayúdame cómo puedo CONTAR SOLO NÚMEROS POSITIVOS de cantidad neta

Por favor, no dude en dar sus pensamientos si los hay para averiguar al revés.

gracias

6 Replies

  • Creo que primero necesito eliminar la factura que comienza con CR

    luego tengo que verificar y comparar si CR Importe neto si = Importe neto de la factura, entonces tengo que eliminar esa factura también luego sumar (importe neto) y dividir el recuento del número de factura

    Por favor, ayúdame a crear esta medida

    gracias

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Administrator

      hola

      Son mis errores que no podría dar un buen archivo de ejemplo para entender. Aquí he adjuntado archivo de Excel.

      donde puedo eliminar las devoluciones completas y pertiales, y hacer coincidir con customer_ID y invoice_DT con el número de factura y el número CR para eliminar y luego encontrar el promedio.

      Las filas podrían estar en cualquier lugar dentro de 3 millones de datos

      Perdón por lo inconveniente.

      gracias

  • @abc_777 ,

    Primero, agregue índice, luego use el siguiente dax para crear una nueva columna:

    test = IF('Table'[Net Amount]<0,'Table'[Net Amount]+CALCULATE(MAX('Table'[Net Amount]),FILTER(ALL('Table'),'Table'[Index]=EARLIER('Table'[Index])-1)),if(CALCULATE(MAX('Table'[Net Amount]),FILTER(ALL('Table'),'Table'[Index]=EARLIER('Table'[Index])+1))<0,0,'Table'[Net Amount]))

    A continuación, cree la siguiente medida:

    avg = SUM('Table'[test])/CALCULATE(COUNTROWS('Table'),FILTER('Table','Table'[test]>0))

    Salida:

    Saludos

    Lucien

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Administrator

      @v-luwang-msft

      Gracias por sus esfuerzos. realmente genial. ¿Me ayudaría a encontrar dónde hay error en mi columna de cálculo?

      El valor de la factura que se reembolsa completamente con CR debe ser ambos) pero el mío no hace eso. Ayuda de PLease

      prueba = SI('bm_retail_t resumen'[NET_AMT] < 0,
      'bm_retail_t resumen'[NET_AMT] +
      CALCULAR(
      ..MAX(
      'bm_retail_t resumen'[NET_AMT]),
      FILTRO(TODO('bm_retail_t resumen'),'bm_retail_t resumen'[Índice] =
      ANTERIOR('bm_retail_t resumen'[Índice]) - 1)),
      si(CALCULAR(
      ..MAX('bm_retail_t resumen'[NET_AMT]),
      FILTRO(TODO('bm_retail_t resumen'),
      'bm_retail_t resumen'[Índice] = ANTERIOR('bm_retail_t resumen'[Índice]) + 1)) < 0, 0, 'bm_retail_t resumen'[NET_AMT]
      )
      )
      • Syndicate_Admin's avatar
        Syndicate_Admin
        Administrator

        Creo que cometimos un error

        221104 120
        CR999999 -120

        No siempre estar juntos. el número de factura y la factura de corrorponancia CR podrían estar en otro lugar, podrían ser después de quince mil o mil filas. podría estar en cualquier lugar. En ese caso, 1 no es correcto. podríamos decir que cuando el valor de CR coincide con el número de factura y en la misma fecha de factura y luego hacer que ambos sean 0