Forum Discussion

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

Función MID como variable

Total shipped qty = 
SUMX('Amazon YTD','Amazon YTD'[Shipped Quantity]*RELATED('summary table'[MPU]))

Hola a todos

Tengo una tabla que tiene el nombre del producto, que incluye el tamaño del paquete como parte de la cadena de texto:

He insertado una columna con la función MID que extrae el tamaño del paquete de la cadena.

Pero ahora estoy tratando de usar la función MID en una variable, de modo que pueda multiplicar la cantidad enviada con el tamaño del paquete (llamado "MPU" aquí) y obtener la cantidad total:

Cantidad total enviada =
SUMX('Amazon YTD','Amazon YTD'[Cantidad enviada]*RELACIONADO(«cuadro sinóptico»[MPU]))
Pero cuando estoy tratando de agregar la función MID en una variable, no me permite elegir una columna en la que realizar la búsqueda MID.
¿Se puede utilizar la función MID como cuasi-iterador en una medida, en lugar de sólo en una columna calculada?
Gracias por la ayuda con anticipación
regds.,

3 Replies

  • Total shipped qty = 
    VAR _Title= SELECTCOLUMNS('Amazon YTD',"Title",'Amazon YTD'[Title]) --chooses to colum of [Title] to apply the MID function to; this is from the same table so did not have to use the Related function
    VAR _SearchPack = SEARCH("of",_Title,,0)+3 --In order to find the starting position for the MID function
    VAR _MPU = value(MID(_Title,_SearchPack,1)) --extracts the pack size and converts to numeric value
    return 
    SUMX('Amazon YTD','Amazon YTD'[Shipped Quantity]*_MPU) --iterates over [shipped qty] and multiplies by the pack size to arrive at the volume

    @amitchandak - Amit, reescribí el código y no usé la función RELATED ya que estoy sacando la columna String ([Title]) de la misma tabla.

    Pero este está devolviendo un error de la siguiente manera:

    ¿Alguna razón y cómo salir de ella?

    Gracias

  • @monojchakrab ,

    Desea extraer el número de las cadenas en la columna Tamaño, ¿verdad?

    Se recomienda utilizar la función LEFT() para obtener el número.

    Measure = LEFT(MAX('Table'[SIZE]),LEN(MAX('Table'[SIZE]))-6)

    Encontrará que los números que propone son tipos de texto, puede modificar el tipo manualmente o puede agregar VALUE() para cambiar el tipo de número.

    Saludos

    Esteban Tao

    Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.