Cálculo de precio a partir del rango de peso

Un usuario Pregunto ✅

giorgionway

Hola,

¿Es posible calcular el precio de venta (en celda amarilla) de la tabla PRECIOS?

Anotación 2020-05-15 014019.png

Hola @giorgionway,

Primero, puede crear dos columnas calculadas para obtener el peso mínimo y el peso máximo del rango de peso:

minWeight = value(left('Prices'[Weight Range], SEARCH("-",'Prices'[Weight Range])-1))
maxWeight = value(mid('Prices'[Weight Range],SEARCH("-",'Prices'[Weight Range])+1,SEARCH("k",'Prices'[Weight Range])-2-SEARCH("-",'Prices'[Weight Range]) ))

Luego crea una medida para obtener el precio correspondiente:

sPrices = CALCULATE (
    MAX ( 'Prices'[Price] ),
    FILTER (
        'Prices',
        'Prices'[Company] = MAX ( 'Sales'[Company] )
            && 'Prices'[Level] = MAX ( 'Sales'[Level] )
            && 'Prices'[minWeight] <= MAX ( 'Sales'[Weight] )
            && 'Prices'[maxWeight] >= MAX ( 'Sales'[Weight] )
    )
)

obtenerprecio.PNG

Atentamente

rena

Hola @giorgionway,

Primero, puede crear dos columnas calculadas para obtener el peso mínimo y el peso máximo del rango de peso:

minWeight = value(left('Prices'[Weight Range], SEARCH("-",'Prices'[Weight Range])-1))
maxWeight = value(mid('Prices'[Weight Range],SEARCH("-",'Prices'[Weight Range])+1,SEARCH("k",'Prices'[Weight Range])-2-SEARCH("-",'Prices'[Weight Range]) ))

Luego crea una medida para obtener el precio correspondiente:

sPrices = CALCULATE (
    MAX ( 'Prices'[Price] ),
    FILTER (
        'Prices',
        'Prices'[Company] = MAX ( 'Sales'[Company] )
            && 'Prices'[Level] = MAX ( 'Sales'[Level] )
            && 'Prices'[minWeight] <= MAX ( 'Sales'[Weight] )
            && 'Prices'[maxWeight] >= MAX ( 'Sales'[Weight] )
    )
)

obtenerprecio.PNG

Atentamente

rena

greg_deckler

Podría llegar allí con un DAX de análisis de cadenas elegante, pero lo que recomendaría es que en Power Query, divida su rango de peso en 3 columnas. Dividir en «-» y luego dividir la segunda columna resultante en » «. Entonces tienes los mínimos y máximos en dos columnas separadas y podrías hacer esto:

Price Column =
  VAR __Company = 'Sales'[Company]
  VAR __Level="Sales"[Level]
  VAR __Weight="Sales"[Weight]
RETURN
  MAXX(
    FILTER(
      'Prices',
      'Prices'[Company] = __Company && 'Prices'[Level] = __Level &&
        'Prices'[Min Weight Range] <= __Weight && 'Prices'[Max Weight Range] >= __Weight
    ),
    [Price]
  ) 

Deja un comentario

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