Queremos extraer el texto que hay entre los dos guiones, cosa que podemos hacer con la función MID. Necesitamos, eso sí, conocer las posiciones de los dos guiones para poder pasar a MID la información adecuada (la posición del primer carácter a extraer y el número de caracteres).
La posición del primer guion puede obtenerse con la función FIND con el siguiente código:
También podríamos haber usado la función SEARCH, ya que la búsqueda no involucra mayúsculas.
Para obtener la posición del segundo guion podemos usar la misma función, pero indicando como posición a partir de la cual comenzar la búsqueda la obtenida en el código anterior + 1 (es decir, a partir del siguiente carácter):
Una vez localizados los dos guiones, el primer carácter a extraer será el que se encuentre en la posición __firstHyphen + 1. Y el número de caracteres será el dado por __secondHyphen - __firstHyphen - 1.
Nuestra columna calculada vendría dada, por lo tanto, por el siguiente código:
VAR __firstHyphen = FIND("-", [Product name])
VAR __secondHyphen = FIND("-", [Product name], __firstHyphen + 1)
RETURN
MID(
[Product name],
__firstHyphen +1,
__secondHyphen - __firstHyphen -1
)