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:
VAR __firstHyphen = FIND("-", [Product name])
VAR __secondHyphen = FIND("-", [Product name], __firstHyphen + 1)
VAR __brand =
MID(
[Product name],
__firstHyphen +1,
__secondHyphen - __firstHyphen -1
)
RETURN
__brand
Pero no queremos devolver la marca, sino el campo inicial tras convertir la marca a mayúsculas (usando la función UPPER):
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:
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…