La función CASE es fundamental en Data Studio para el tratamiento de datos: los manipula totalmente a nuestro antojo para poder tener tablas y gráficas personalizadas.

Ya en un post anterior hablamos de la anatomía de CASE en Data Studio. Pero básicamente es una concatenación de  en caso de ….si…entonces… y aplicar la lógica griega.

Te dejamos un vídeo para recordar cómo funciona.

Pero la mejor opción para entender cómo funciona CASE es ver 3 ejemplos prácticos que nos pueden dar más consistencia y veracidad a nuestros paneles de control.

Función Case métricas: valor null o sin valor

Data Studio toma el valor null cuando cuando la entrada está vacía o bien es nulo.

Y cuando ponemos un campo calculado donde una métrica arroje un valor y la otra no, nos dará null.

Por ello, uno de los primeros campos calculados que tenemos que crear es el de convertir null en 0, para que en la tabla nos cuadre.

Data Studio valor Null
Ejemplo de tabla de data studio con valor null. Fuente: Adroll

Otra opción es cuando queremos contabilizar una dimensión con la fórmula count, y no existe el que buscamos en particular:

Data Studio da la alternativa para que sea él mismo el que haga este campo calculado y no tengas que ir dimensión por dimensión ni métrica por métrica. Basta hacerlo desde el estilo (style):

Data Studio permite convertir null en 0 sin el campo calculado case
Data Studio permite convertir null en 0 sin el campo calculado case

Función Case dimensiones: agrupar dimensiones

Cuando aplicamos la función case para las dimensiones, nos permite crear un nuevo campo calculado donde organizar nuestras dimensiones de una manera más personalizada.

El ejemplo más claro es el de las campañas de Google Ads. Donde existen diferentes nomenclaturas. Muchas agencias o gestores de marketing digital eligen nombres de campaña donde se ponga:

  1. Localización / idiomas
  2. Network / Dispositivo
  3. Nombre del producto

En la cuenta demo de Google Analytics podemos ver dos ejemplos de nombres de campañas de Google Ads que son díficil de entender:

Campañas de Google Ads desde Google Analytics
Nombre de campañas de Google Ads siguiendo una nomenclatura privada

Tienen un código, GA – que podríamos deducir como Google Analytics – idioma, tipo de campaña, red y tipo de anuncio.

Para presentar un reporte a alguien enfocado en negocio o lejos del día de las campañas de Google Ads es un nombre poco amistoso. Un código oculto. Y es aquí donde entra la función CASE de Data Studio. Presentaremos la información limpia y ordenada, lista para que alguien la pueda procesar de una manera sencilla y  efectiva. Mutaremos el nombre por otro enfocado en negocio.

O por ejemplo si tenemos un negocio con centro de atención a ciertas horas, podríamos crear una dimensión en función a sus horas laborales y cómo funcionan las campañas cuando tenemos ese servicio y cuando no lo tenemos. De

Aquí podemos ver el ejemplo de la función CASE con dimensiones y nombrando esas campañas de una manera más amigable:

Para hacer esto, simplemente hemos creado esta función:

REGEXP_MATCH(Campaign,".*Page.*") then "DSA"
when REGEXP_MATCH(Campaign,".*AW.*") then "Keywords"
else "Others"
End

Lo importante aquí es entender qué dimensión queremos (Campaña, Ciudad, País, Día de la Semana, etc…) y ver cuántos patrones tiene.

Best Practices Data Studio con CASE

Para mejorar el uso de la función CASE deberíamos:

Expresiones regulares

  • Aprender y explotar las expresiones regulares para escalar la selección de las dimensiones o métricas

Nivel fuente de datos

  • Hacer el campo calculado con la función CASE a nivel fuente de datos.
campo calculado en fuente de datos Data Studio
Los campos calculados o fórmulas en Data Studio tienen el icono de Fx en la fuente de datos original

Hacer campos calculados de datos no originales

Cuando creamos nuevos campos calculados podemos tener problemas con datos que no son de orígenes pero creemos que sí. Por ejemplo el CTR de las campañas de Google Ads.

Data Studio importa el valor del CTR, no la fórmula.

Al crear una agrupación de campañas y ponerle el CTR, Data Studio no va a sumar los clics, las impresiones y hacer la división clics/impresiones.

Lo que va a hacer Data Studio es devolvernos un error de en la tabla o números falseados:

función case ejemplo en data studio
Ejemplo función case cuando no actualizamos métricas no primarias. En la tabla superior tenemos un CTR imposible: 269,12% cuando realmente es 1,83%. Ve el ejemplo en la Plantilla.

Por ello siempre habrá que crear CTR, CPC, Conversion Rate, Costo por Adquisición, etc… Y todas aquellas métricas formadas por otras dos métricas.

El consejo es ponerle en el nombre CF – de Calculated Field – o cualquier otro agregado que nos indique que es el CTR calculado y no importado. Porque tendremos dos métricas con el mismo nombre.

Conclusión

La función CASE dentro de Data Studio es una obligación de aprender como las fórmulas if o vlookup de Google Sheet. Nos permitirán afinar nuestros tableros y hacer más rápido el análisis de información.

Aprender CASE When no es una opción sino una obligación si queremos utilizar Data Studio.

Los campos calculados no se pueden importar a otras fuentes de datos. Utilizaremos en algunos casos siempre las mismas funciones case (por ejemplo para CTR), es útil tenerlas guardadas en una hoja para acelerar la implementación en nuevas fuentes de datos.

9 pensamientos en “2 Ejemplos de Función CASE When en Data Studio”

  1. AYUDA POR FAVOR !:
    he intentado hacer agrupaciones de campos usando este código y no me está funcionando:
    CASE
    WHEN REGEXP_MATCH(name, ‘.*mesero.*|.*Mesero*.’) THEN «MESERO»
    WHEN REGEXP_MATCH(name, ‘.*servilleta.*|.*Servilleta*.’) THEN «SERVILLETAS»
    WHEN REGEXP_MATCH(name, ‘.*carta.*|.*Carta*.’) THEN «CARTA»
    ELSE name
    END

    1. Hola Luis Fernando,

      Por un lado, ¿name, qué valor es?¿el campo se llama a así?
      Las comillas están mal:

      case when REGEXP_MATCH(name,».*(mesero|Mesero).*») then «MESERO»
      when REGEXP_MATCH(name,».*(servilletas|Servilleta).*») then «SERVILLETAS»
      WHEN REGEXP_MATCH(name,».*(carta.*|.*Carta).*») THEN «CARTA»
      else name
      End

      Saludos

  2. Hola buen día,
    Primero que nada felicitarte por tu post es muy completo, soy nuevo en el mundo de DataStudio y he estado buscando por todos lados como agrupar información repetida te pongo el ejemplo (Metricas: nombreAlumno, versionApp, fechasIngreso):
    Nombre alumno
    Alejandra Lopez Castro
    Alejandra Lopez Castro
    Rafael Perez Perez
    Rafael Perez Perez
    Rafael Perez Perez
    Rafael Perez Perez
    Alejandra Lopez Sandoval
    Alejandra Lopez Sandoval

    No encuentro la manera cómo agrupar por nombre repetido habrá una manera y así para cada una de las métricas mencionadas en la parte de arriba.
    Agradeceria mucho una respuesta de parte tuya.

    1. Hola Fernando,

      Los nombres de los alumnos deberían ser una Dimensión y no una métrica.
      Prueba a añadirlos como Dimensión y coméntame si te funciona, si no podemos verlo 🙂

      Saludos

  3. Que tal Fernando,
    Espero me podrias ayudar. Quisiera hacer una función con operadores matematicos. Estoy usando la siguiente formula.
    CASE
    WHEN sum(Ingresos) > 10000 THEN «>10K»
    WHEN sum(Ingresos) > 5000 THEN «>5k»
    WHEN sum(Ingreso) <= 5000 THEN "<5k"
    END
    Pero no me deja utilizarla. Me lo acepta cuando le quito la funcion sum(). Pero al quitarselo no me da el resultado correcto cuando quiero usarlo para un filtro. Espero me puedas ayudar.

    1. Hola Fredy,

      Lo que debes de hacer es crear una métrica que sea sum(ingresos). Le llamas por ejemplo suma.
      Y luego haces la funcion case con suma:
      Case
      When Suma > 10000 then >10k
      When Suma > 5000 then >5k
      else «<5k"
      End

      Saludos

      1. Buenos tengo una similar, que habla del ticket promedio
        Si la facturacion promedio por pedido es mayor a 8000 lo llamarias mayorista, y si fue inferior minorista
        Pero me arroja errores
        gracias!!

        CASE
        WHEN (SUM (Facturacion) / COUNT_DISTINCT(Id Pedido))> 8000 THEN «Mayorista»
        ELSE «Minorista»
        END

        1. Hola Martin,

          Vas a tener que realizar esto en dos pasos.
          Por un lado crear una métrica que sea (SUM (Facturacion) / COUNT_DISTINCT(Id Pedido)). Le llamas a este campo por ejemplo facturación.
          Luego ya haces la función case con la nueva dimensión.

          De todas maneras, compartiendo una captura de pantalla te podremos ayudar mejor 🙂
          Saludos

Deja una respuesta

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