Resolución del ejercicio

En este ejercicio necesitamos localizar los dos guiones (cosa que ya hemos hecho en el anterior ejercicio), extraer la marca (cadena de texto entre ambos guiones) y usar la función REPLACE para sustituirla por su versión en mayúsculas. Empecemos localizando los dos guiones y devolviendo la marca:

Name = 
VAR __firstHyphen = FIND("-", [Product name])
VAR __secondHyphen = FIND("-", [Product name], __firstHyphen + 1)
VAR __brand =
    MID(
        [Product name],
        __firstHyphen +1,
        __secondHyphen - __firstHyphen -1
    )
RETURN
    __brand
Name

Pero no queremos devolver la marca, sino el campo inicial tras convertir la marca a mayúsculas (usando la función UPPER):

Name = 
VAR __firstHyphen = FIND("-", [Product name])
VAR __secondHyphen = FIND("-", [Product name], __firstHyphen + 1)
VAR __brand =
    MID(
        [Product name],
        __firstHyphen +1,
        __secondHyphen - __firstHyphen -1
    )
RETURN
    REPLACE(
        [Product name],
        __firstHyphen + 1,
        __secondHyphen - __firstHyphen -1,
        UPPER(__brand)
    )

En la función REPLACE le indicamos el primer carácter a partir del cual realizar el reemplazo (la posición del primer guion más 1), el número de caracteres a reemplazar (__secondHyphen - __firstHyphen -1) y el texto que va a reemplazar al antiguo: la versión en mayúsculas de la marca. El resultado es el siguiente:

Name

En este caso también podríamos haber convertido toda la columna a mayúsculas puesto que la única parte del campo que no estaba en mayúsculas era la marca. Pero no sería una solución tan generalizable…