https://tauruzai.com/clase2

📈 Ejercicio: Alertas de Acciones

Automatización de análisis de mercado con Excel

🎯 Objetivo

Crear una fórmula que automáticamente clasifique acciones reales del mercado (Apple, Microsoft, Tesla, Nvidia, etc.) en tres categorías según su cambio de precio:

ALERTA

Caídas significativas que requieren atención (>5%)

OPORTUNIDAD

Subidas fuertes que indican momentum positivo (>3%)

ESTABLE

Variaciones menores o normales del mercado (-5% a +3%)

📥 Descarga el Material

Archivo Excel (XLSX) con 20 acciones reales y datos listos para trabajar

Descarga el archivo y ábrelo en Excel para comenzar los ejercicios

⬇️ Descargar Archivo Excel

📋 Opción Alternativa: Copiar Datos Manualmente

Si no puedes descargar el archivo, copia esta tabla y pégala en Excel (celda A1):

Acción Precio_Hoy Precio_Ayer
AAPL178.5185.2
MSFT412.8398.5
GOOGL142.3138.9
AMZN178.2172.8
TSLA242.8258.4
NVDA875.3824.6
META485.6492.3
NFLX618.4597.2
AMD164.5158.2
INTC43.846.2
JPM198.7205.4
BAC34.235.8
WMT167.5162.3
DIS112.4108.7
PYPL62.867.5
V285.3276.8
MA442.6428.9
PFE28.929.8
JNJ156.4160.2
XOM112.8109.5
📝 Instrucciones para copiar:
  1. Selecciona toda la tabla de arriba (haz clic y arrastra desde "Acción" hasta el último número)
  2. Copia (Ctrl+C o Cmd+C)
  3. Abre Excel y selecciona la celda A1
  4. Pega (Ctrl+V o Cmd+V)
  5. Los datos se pegarán automáticamente en las columnas A, B, C

📋 Estructura de los Datos

Columna A Columna B Columna C Columna D
Acción Precio_Hoy Precio_Ayer Estado
AAPL $178.50 $185.20 ESTABLE
NVDA $875.30 $824.60 OPORTUNIDAD
TSLA $242.80 $258.40 ALERTA

💬 Paso 1: El Prompt

📝 Copia y pega esto en Claude/ChatGPT:
Necesito una fórmula de Excel que: - Compare el precio de una acción en la columna B (Precio_Hoy) vs columna C (Precio_Ayer) - Si el precio bajó más de 5% respecto a ayer, marque "ALERTA" - Si el precio subió más de 3% respecto a ayer, marque "OPORTUNIDAD" - En cualquier otro caso (variaciones menores), marque "ESTABLE" La fórmula debe ir en la columna D, empezando en D2. Dame la fórmula en ESPAÑOL (usando SI) y en INGLÉS (usando IF). Explica paso a paso cómo funciona.

✅ Paso 2: Implementar la Fórmula

🔧 Fórmula para Excel en ESPAÑOL (celda D2):
=SI((B2-C2)/C2 < -0.05, "ALERTA", SI((B2-C2)/C2 > 0.03, "OPORTUNIDAD", "ESTABLE"))
🔧 Fórmula para Excel en INGLÉS (celda D2):
=IF((B2-C2)/C2 < -0.05, "ALERTA", IF((B2-C2)/C2 > 0.03, "OPORTUNIDAD", "ESTABLE"))
⚠️ Importante: La diferencia entre español e inglés está en el nombre de la función:

Si copias la fórmula y te da error, intenta con la versión del otro idioma. Google Sheets siempre usa la versión en inglés (IF).

📖 Explicación de la fórmula:

💡 Nota: La lógica es idéntica en ambos idiomas, solo cambia el nombre de la función (SI vs IF). El resto de operadores (<, >, /) y el cálculo matemático son universales. "ESTABLE" captura todos los casos donde la variación no es significativa (entre -5% y +3%).

🎬 Paso 3: Aplicar a todas las filas

  1. Selecciona la celda D2 (donde pegaste la fórmula)
  2. Copia la celda (Ctrl+C o Cmd+C)
  3. Selecciona el rango D3:D21 (todas las demás acciones)
  4. Pega la fórmula (Ctrl+V o Cmd+V)
  5. Excel/Sheets ajustará automáticamente las referencias (B3, C3, etc.)

🔍 Resultados Esperados

Así debería clasificar tu fórmula cada acción según su variación porcentual:

Acción Cambio % Estado Esperado
AAPL -3.62% ESTABLE (no llega a -5%)
NVDA +6.15% OPORTUNIDAD
TSLA -6.04% ALERTA
MSFT +3.59% OPORTUNIDAD
PYPL -6.96% ALERTA
GOOGL +2.45% ESTABLE (no llega a +3%)
💡 Tip Pro: Después de aplicar la fórmula, usa formato condicional para colorear automáticamente las celdas:

🚀 Desafío Extra (Opcional)

Modifica la fórmula para agregar niveles más detallados:

📝 Prompt para el desafío:
Modifica la fórmula anterior para incluir 5 categorías: - Caída >5%: "🔴 ALERTA CRÍTICA" - Caída 3-5%: "⚠️ PRECAUCIÓN" - Subida >5%: "🟢 FUERTE SUBIDA" - Subida 3-5%: "📈 OPORTUNIDAD" - Cambio entre -3% y +3%: "➡️ ESTABLE" Dame la nueva fórmula usando SI/IF anidados. Necesito la versión en ESPAÑOL (SI) y en INGLÉS (IF).
💡 Solución del desafío:

Español:
=SI((B2-C2)/C2<-0.05,"🔴 ALERTA CRÍTICA",SI((B2-C2)/C2<-0.03,"⚠️ PRECAUCIÓN",SI((B2-C2)/C2>0.05,"🟢 FUERTE SUBIDA",SI((B2-C2)/C2>0.03,"📈 OPORTUNIDAD","➡️ ESTABLE")))) Inglés:
=IF((B2-C2)/C2<-0.05,"🔴 ALERTA CRÍTICA",IF((B2-C2)/C2<-0.03,"⚠️ PRECAUCIÓN",IF((B2-C2)/C2>0.05,"🟢 FUERTE SUBIDA",IF((B2-C2)/C2>0.03,"📈 OPORTUNIDAD","➡️ ESTABLE"))))

✅ Criterios de Evaluación

🎓 Aprendizaje Clave: Este ejercicio demuestra cómo la IA puede ayudarte a crear fórmulas complejas sin necesidad de memorizar sintaxis. Solo necesitas explicar claramente lo que quieres lograr.

📊 Ejercicio 2: Tabla Dinámica Automática

Resumen de datos con fórmulas avanzadas

🎯 Objetivo

Crear una tabla dinámica que automáticamente resuma los datos de todas las acciones, mostrando promedios por acción y calculando variaciones porcentuales, todo con una sola fórmula sin necesidad de tablas dinámicas tradicionales.

¿Qué vamos a construir?

Una tabla automática que muestre:

  • 📌 Columna 1: Nombre de cada acción (únicos, ordenados alfabéticamente)
  • 📊 Columna 2: Precio promedio de hoy
  • 📊 Columna 3: Precio promedio de ayer
  • 📈 Columna 4: Variación porcentual

Todo con una sola fórmula en una celda que puedes pegar donde quieras!

💬 Paso 1: El Prompt

📝 Copia y pega esto en Claude/ChatGPT:
Necesito crear una tabla resumen en Excel con una sola fórmula que: 1. Extraiga todas las acciones únicas de la columna A (desde A2 hasta A1000) 2. Las ordene alfabéticamente 3. Calcule el precio promedio de hoy (columna B) para cada acción 4. Calcule el precio promedio de ayer (columna C) para cada acción 5. Calcule la variación porcentual: (PromedioHoy - PromedioAyer) / PromedioAyer 6. Muestre todo en una tabla de 4 columnas: - Columna 1: Acción - Columna 2: Promedio Precio Hoy - Columna 3: Promedio Precio Ayer - Columna 4: Variación % Usa funciones modernas de Excel como LET, UNIQUE, SORT, AVERAGEIFS, CHOOSE. Si hay errores en el cálculo de variación (división por cero), que muestre vacío. La fórmula debe expandirse automáticamente hacia la derecha (4 columnas) y hacia abajo (tantas filas como acciones únicas haya). Dame la fórmula completa en ESPAÑOL y en INGLÉS.

✅ Paso 2: Las Fórmulas Generadas

🔧 Fórmula para Excel en ESPAÑOL:
=LET( ac, ORDENAR(UNICOS($A$2:$A$1000)), promHoy, PROMEDIO.SI.CONJUNTO($B$2:$B$1000,$A$2:$A$1000,ac), promAyer, PROMEDIO.SI.CONJUNTO($C$2:$C$1000,$A$2:$A$1000,ac), pct, SI.ERROR((promHoy-promAyer)/promAyer,""), ELEGIR({1,2,3,4}, ac, promHoy, promAyer, pct) )
🔧 Fórmula para Excel en INGLÉS:
=LET( ac, SORT(UNIQUE($A$2:$A$1000)), avgToday, AVERAGEIFS($B$2:$B$1000,$A$2:$A$1000,ac), avgYest, AVERAGEIFS($C$2:$C$1000,$A$2:$A$1000,ac), pct, IFERROR((avgToday-avgYest)/avgYest,""), CHOOSE({1,2,3,4}, ac, avgToday, avgYest, pct) )
⚠️ Requisitos importantes:

📖 Paso 3: Entender la Fórmula

Desglose línea por línea:

🎬 Paso 4: Implementar en Excel

  1. Elige dónde pegar: Selecciona cualquier celda vacía donde quieras que aparezca la tabla (por ejemplo: E2, F2, o cualquier otra)
  2. Asegura espacio libre: La fórmula se expandirá 4 columnas a la derecha y varias filas hacia abajo, así que asegúrate de tener ese espacio vacío
  3. Agrega encabezados (opcional): En la fila superior a donde pegarás, puedes agregar encabezados: "Acción", "Precio Hoy", "Precio Ayer", "Variación %"
  4. Pega la fórmula: Selecciona la celda donde quieres la tabla y pega la fórmula completa (según tu idioma)
  5. Presiona Enter: ¡La tabla se creará automáticamente con todas las acciones únicas!
  6. Formato opcional: Formatea la última columna (variación) como porcentaje (Ctrl+Shift+5 o %)
✨ Magia de las fórmulas dinámicas: Cuando agregas nuevas filas de datos en las columnas A, B, C, la tabla se actualiza automáticamente. No necesitas copiar nada ni refrescar tablas dinámicas. Además, puedes pegar esta fórmula en cualquier celda vacía que tenga espacio suficiente a su derecha y abajo.

📊 Resultado Esperado

Tu tabla debería verse así:

Acción Precio Hoy Precio Ayer Variación %
AAPL $178.50 $185.20 -3.62%
AMD $164.50 $158.20 +3.98%
AMZN $178.20 $172.80 +3.13%
... ... ... ...
20 acciones en total, ordenadas alfabéticamente

🔧 Solución de Problemas

❌ Error: #NAME?

Tu versión de Excel no soporta estas funciones. Necesitas Excel 2021 o Microsoft 365.

❌ Error: #SPILL!

Hay datos en las celdas donde la fórmula quiere expandirse. Limpia el área (4 columnas a la derecha y todas las filas hacia abajo) desde donde pegaste la fórmula.

❌ No funciona en Google Sheets

Correcto, LET y CHOOSE con arrays no están en Google Sheets. Usa Excel para este ejercicio.

🚀 Desafío Extra: Agregar Más Columnas

Modifica la fórmula para agregar una quinta columna con el estado:

📝 Prompt para el desafío:
Modifica la fórmula LET anterior para agregar una quinta columna llamada "Estado" que: - Si pct > 0.03, muestre "🟢 OPORTUNIDAD" - Si pct < -0.05, muestre "🔴 ALERTA" - En otros casos, muestre "➡️ ESTABLE" Usa la función SI/IF anidada dentro del LET, crea una nueva variable llamada "estado", y agrégala al CHOOSE para que la tabla tenga 5 columnas en lugar de 4. Dame la fórmula completa actualizada en español e inglés.

✅ Criterios de Evaluación - Ejercicio 2

🎓 Aprendizaje Clave del Ejercicio 2: Las fórmulas modernas de Excel (LET, UNIQUE, SORT) permiten crear tablas dinámicas sin usar la herramienta de Tabla Dinámica. Esto es más flexible y se actualiza instantáneamente. La IA puede generar estas fórmulas complejas explicándole claramente qué necesitas.

⚙️ Ejercicio 3: Macro Simple en Google Sheets

Automatización con Google Apps Script

🎯 Objetivo

Crear un script automático que calcule el crecimiento porcentual mes a mes de ventas y envíe un email de alerta si el último mes muestra crecimiento negativo.

¿Qué vamos a automatizar?

  • 📊 Leer datos de ventas mensuales de una hoja de Google Sheets
  • 📈 Calcular automáticamente el crecimiento % mes a mes
  • ✍️ Escribir los resultados en la columna "Crecimiento %"
  • 📧 Enviar un email automático si el último mes tiene crecimiento negativo

Todo esto se ejecutará con un solo clic en Google Sheets!

📥 Descarga los Datos

Archivo Excel (XLSX) con datos de ventas mensuales para practicar

Descarga y súbelo a Google Drive, luego ábrelo con Google Sheets

⬇️ Descargar Datos de Ventas

📋 Opción Alternativa: Copiar Datos Manualmente

Copia esta tabla y pégala en Google Sheets (crea una hoja llamada "Ventas Mensuales"):

Mes Ventas (MXN) Notas
2025-01-011,250,000Lanzamiento Q1
2025-02-011,310,000
2025-03-011,180,000Ajuste de precios
2025-04-011,420,000Campaña "Abril"
2025-05-011,390,000
2025-06-011,520,000Distribuidor Norte
2025-07-011,480,000
2025-08-011,350,000Estacionalidad
2025-09-011,370,000
2025-10-011,290,000Ruptura de stock
📝 Instrucciones para Google Sheets:
  1. Abre Google Sheets y crea un nuevo documento
  2. Renombra la hoja como "Ventas Mensuales" (haz clic en el nombre de la pestaña)
  3. Selecciona toda la tabla de arriba y cópiala (Ctrl+C)
  4. Pega en la celda A1 de Google Sheets (Ctrl+V)
  5. Agrega un encabezado "Crecimiento %" en la celda C1
  6. ¡Listo! Ahora tienes los datos para el ejercicio

📋 Estructura de los Datos

Columna A Columna B Columna C Columna D
Mes Ventas (MXN) Crecimiento % Notas
2025-01-01 1,250,000 (vacío, se llenará con el script) Lanzamiento Q1
2025-02-01 1,310,000 (se calculará: +4.8%)
2025-03-01 1,180,000 (se calculará: -9.9%) Ajuste de precios

💬 Paso 1: El Prompt para el Script

📝 Copia y pega esto en Claude/ChatGPT:
En Google Apps Script, escribe solo el código (en un bloque ```javascript) que: 1. lea la hoja "Ventas Mensuales", 2. calcule el crecimiento % mes a mes y lo escriba en la columna C, 3. envíe un email si el último crecimiento es negativo. Estructura: A=Mes (YYYY-MM-DD), B=Ventas (MXN), C=Crecimiento %, D=Notas. Código comentado paso a paso. IMPORTANTE: El email debe enviarse a la dirección del usuario actual (Session.getActiveUser().getEmail()).

✅ Paso 2: El Código Generado

🔧 Código de Google Apps Script:
function calcularCrecimiento() { // 1. OBTENER LA HOJA Y LOS DATOS var hoja = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Ventas Mensuales"); var datos = hoja.getDataRange().getValues(); // 2. CALCULAR CRECIMIENTO MES A MES // Empezamos en fila 2 (índice 1) porque fila 1 son encabezados for (var i = 2; i < datos.length; i++) { var ventasActual = datos[i][1]; // Columna B (Ventas) var ventasAnterior = datos[i-1][1]; // Ventas del mes anterior // Calcular crecimiento porcentual var crecimiento = ((ventasActual - ventasAnterior) / ventasAnterior) * 100; // Escribir en columna C (índice 2) // i+1 porque en Sheets las filas empiezan en 1, no en 0 hoja.getRange(i + 1, 3).setValue(crecimiento.toFixed(2) + "%"); } // 3. VERIFICAR ÚLTIMO CRECIMIENTO Y ENVIAR EMAIL SI ES NEGATIVO var ultimaFila = datos.length - 1; var ventasUltimo = datos[ultimaFila][1]; var ventasPenultimo = datos[ultimaFila - 1][1]; var ultimoCrecimiento = ((ventasUltimo - ventasPenultimo) / ventasPenultimo) * 100; // Si el último crecimiento es negativo, enviar email if (ultimoCrecimiento < 0) { var email = Session.getActiveUser().getEmail(); var asunto = "⚠️ Alerta: Crecimiento Negativo en Ventas"; var mensaje = "El último mes registró un crecimiento de " + ultimoCrecimiento.toFixed(2) + "%.\n\n"; mensaje += "Ventas mes anterior: $" + ventasPenultimo.toLocaleString() + " MXN\n"; mensaje += "Ventas último mes: $" + ventasUltimo.toLocaleString() + " MXN\n\n"; mensaje += "Se recomienda revisar la estrategia comercial."; MailApp.sendEmail(email, asunto, mensaje); // Mostrar mensaje en Sheets SpreadsheetApp.getUi().alert("Email enviado", "Se detectó crecimiento negativo y se envió un email de alerta.", SpreadsheetApp.getUi().ButtonSet.OK); } else { SpreadsheetApp.getUi().alert("Cálculo completado", "El crecimiento del último mes es positivo: " + ultimoCrecimiento.toFixed(2) + "%", SpreadsheetApp.getUi().ButtonSet.OK); } }
💡 Entendiendo el código:

🎬 Paso 3: Implementar el Script en Google Sheets

  1. Abrir el Editor de Scripts: En Google Sheets, ve a Extensiones > Apps Script
  2. Borrar código existente: Elimina todo el código que aparece por defecto (function myFunction() {...})
  3. Pegar el código: Copia el código completo generado por la IA y pégalo en el editor
  4. Guardar: Haz clic en el ícono de disco o presiona Ctrl+S (ponle un nombre como "Análisis Ventas")
  5. Listo! Ahora puedes ejecutar el script

▶️ Paso 4: Ejecutar el Script

  1. Selecciona la función: En el editor de Apps Script, asegúrate de que "calcularCrecimiento" esté seleccionado en el menú desplegable superior
  2. Haz clic en "Ejecutar": Presiona el botón ▶️ (Play) en la parte superior
  3. Autorizar (primera vez): La primera vez te pedirá permisos:
    • Haz clic en "Revisar permisos"
    • Selecciona tu cuenta de Google
    • Haz clic en "Avanzado" → "Ir a [nombre del proyecto]"
    • Haz clic en "Permitir"
  4. Ver resultados: Regresa a tu hoja de Google Sheets y verás la columna C llena con los porcentajes de crecimiento
  5. Revisar email: Si el último mes tiene crecimiento negativo, recibirás un email en tu bandeja de entrada
✨ Tip Pro: Para ejecutar el script automáticamente cada mes, ve a "Activadores" (ícono de reloj ⏰) en el editor de Apps Script y configura un activador programado. Puedes hacer que se ejecute el día 1 de cada mes a las 9:00 AM, por ejemplo.

🔍 Resultados Esperados

Después de ejecutar el script, tu hoja debería verse así:

Mes Ventas (MXN) Crecimiento % Notas
2025-01-01 1,250,000 N/A Lanzamiento Q1
2025-02-01 1,310,000 4.80%
2025-03-01 1,180,000 -9.92% Ajuste de precios
2025-04-01 1,420,000 20.34% Campaña "Abril"
... ... ... ...
2025-10-01 1,290,000 -5.84% Ruptura de stock
📧 Email de Alerta Recibido

Como el último mes (octubre) tiene crecimiento negativo de -5.84%, recibirás un email con los detalles y una recomendación de revisar la estrategia comercial.

🔧 Solución de Problemas

❌ Error: "No se puede encontrar la hoja"

Asegúrate de que la hoja se llame exactamente "Ventas Mensuales" (respeta mayúsculas y espacios).

❌ Error: "No tiene permisos"

Debes autorizar el script la primera vez. Sigue las instrucciones del Paso 4 para dar permisos.

❌ No recibo el email

Verifica que el último mes tenga crecimiento negativo. Si es positivo, no se envía email (es el comportamiento esperado). También revisa tu carpeta de spam.

🚀 Desafío Extra

Modifica el script para enviar un email con un resumen mensual que incluya:

📝 Prompt para el desafío:
Modifica el código anterior de Google Apps Script para que: 1. Calcule el promedio de crecimiento de todos los meses 2. Identifique el mejor mes (mayor crecimiento) y el peor mes (menor crecimiento) 3. Calcule las ventas totales acumuladas 4. Envíe un email con un resumen ejecutivo que incluya estos 4 indicadores 5. El email debe enviarse siempre (no solo cuando hay crecimiento negativo) Dame el código completo actualizado, bien comentado.

✅ Criterios de Evaluación - Ejercicio 3

🎓 Aprendizaje Clave del Ejercicio 3: Google Apps Script permite automatizar tareas repetitivas en Google Sheets. Con unas pocas líneas de código generadas por IA, puedes crear alertas automáticas, reportes programados y análisis que se actualizan solos. Esto ahorra horas de trabajo manual cada mes.