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 |
| AAPL | 178.5 | 185.2 |
| MSFT | 412.8 | 398.5 |
| GOOGL | 142.3 | 138.9 |
| AMZN | 178.2 | 172.8 |
| TSLA | 242.8 | 258.4 |
| NVDA | 875.3 | 824.6 |
| META | 485.6 | 492.3 |
| NFLX | 618.4 | 597.2 |
| AMD | 164.5 | 158.2 |
| INTC | 43.8 | 46.2 |
| JPM | 198.7 | 205.4 |
| BAC | 34.2 | 35.8 |
| WMT | 167.5 | 162.3 |
| DIS | 112.4 | 108.7 |
| PYPL | 62.8 | 67.5 |
| V | 285.3 | 276.8 |
| MA | 442.6 | 428.9 |
| PFE | 28.9 | 29.8 |
| JNJ | 156.4 | 160.2 |
| XOM | 112.8 | 109.5 |
📝 Instrucciones para copiar:
- Selecciona toda la tabla de arriba (haz clic y arrastra desde "Acción" hasta el último número)
- Copia (Ctrl+C o Cmd+C)
- Abre Excel y selecciona la celda A1
- Pega (Ctrl+V o Cmd+V)
- 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
⚠️ Importante: La diferencia entre español e inglés está en el nombre de la función:
- Español: SI() - usado en versiones de Excel/Office en español
- Inglés: IF() - usado en versiones en inglés o Google Sheets
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:
- (B2-C2)/C2 → Calcula el cambio porcentual: (Precio_Hoy - Precio_Ayer) / Precio_Ayer
- < -0.05 → Verifica si bajó más de 5% (equivalente a -5%)
- > 0.03 → Verifica si subió más de 3% (equivalente a +3%)
- SI/IF anidados → Primero evalúa caídas fuertes (ALERTA), luego subidas fuertes (OPORTUNIDAD), y para todo lo demás marca "ESTABLE" (variaciones menores o estables)
💡 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
- Selecciona la celda D2 (donde pegaste la fórmula)
- Copia la celda (Ctrl+C o Cmd+C)
- Selecciona el rango D3:D21 (todas las demás acciones)
- Pega la fórmula (Ctrl+V o Cmd+V)
- 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:
- ALERTA → Fondo rojo (#ef4444)
- OPORTUNIDAD → Fondo verde (#10b981)
- ESTABLE → Fondo naranja (#f59e0b)
🚀 Desafío Extra (Opcional)
Modifica la fórmula para agregar niveles más detallados:
- Caída > 5%: "🔴 ALERTA CRÍTICA"
- Caída entre 3-5%: "⚠️ PRECAUCIÓN"
- Subida > 5%: "🟢 FUERTE SUBIDA"
- Subida entre 3-5%: "📈 OPORTUNIDAD"
- Cambio entre -3% y +3%: "➡️ ESTABLE"
📝 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
- ✓ La fórmula funciona correctamente en todas las filas
- ✓ Identifica correctamente las ALERTAS (caídas >5%)
- ✓ Identifica correctamente las OPORTUNIDADES (subidas >3%)
- ✓ Marca como ESTABLE las variaciones menores (entre -5% y +3%)
- ✓ (Bonus) Implementa formato condicional para los 3 estados
- ✓ (Bonus) Completa el desafío extra con 5 categorías
🎓 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
⚠️ Requisitos importantes:
- Excel/Microsoft 365: Necesitas una versión con funciones dinámicas (2021 o Microsoft 365)
- Google Sheets: Estas funciones NO funcionan en Google Sheets, solo en Excel moderno
- Versiones antiguas de Excel: Si usas Excel 2016 o anterior, estas funciones no están disponibles
📖 Paso 3: Entender la Fórmula
Desglose línea por línea:
- LET() → Permite crear variables temporales dentro de la fórmula para hacerla más legible
- ac = SORT(UNIQUE($A$2:$A$1000)) → Extrae las acciones únicas de la columna A y las ordena alfabéticamente
- promHoy = AVERAGEIFS(...) → Calcula el promedio del precio de hoy (columna B) para cada acción única
- promAyer = AVERAGEIFS(...) → Calcula el promedio del precio de ayer (columna C) para cada acción única
- pct = IFERROR(...) → Calcula la variación porcentual, protegiendo contra errores de división por cero
- CHOOSE({1,2,3,4}, ...) → Combina las 4 columnas en una tabla final que se expande automáticamente
🎬 Paso 4: Implementar en Excel
- Elige dónde pegar: Selecciona cualquier celda vacía donde quieras que aparezca la tabla (por ejemplo: E2, F2, o cualquier otra)
- 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
- Agrega encabezados (opcional): En la fila superior a donde pegarás, puedes agregar encabezados: "Acción", "Precio Hoy", "Precio Ayer", "Variación %"
- Pega la fórmula: Selecciona la celda donde quieres la tabla y pega la fórmula completa (según tu idioma)
- Presiona Enter: ¡La tabla se creará automáticamente con todas las acciones únicas!
- 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:
- Si variación > 3%: "🟢 OPORTUNIDAD"
- Si variación < -5%: "🔴 ALERTA"
- Si entre -5% y 3%: "➡️ ESTABLE"
📝 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
- ✓ La fórmula se expande correctamente creando 4 columnas
- ✓ Las acciones aparecen únicas y ordenadas alfabéticamente
- ✓ Los promedios se calculan correctamente por acción
- ✓ La variación porcentual es precisa
- ✓ No hay errores #DIV/0! o #VALUE!
- ✓ (Bonus) Completa el desafío extra agregando la columna Estado
- ✓ (Bonus) Aplica formato condicional a la columna de variación
🎓 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-01 | 1,250,000 | Lanzamiento Q1 |
| 2025-02-01 | 1,310,000 | |
| 2025-03-01 | 1,180,000 | Ajuste de precios |
| 2025-04-01 | 1,420,000 | Campaña "Abril" |
| 2025-05-01 | 1,390,000 | |
| 2025-06-01 | 1,520,000 | Distribuidor Norte |
| 2025-07-01 | 1,480,000 | |
| 2025-08-01 | 1,350,000 | Estacionalidad |
| 2025-09-01 | 1,370,000 | |
| 2025-10-01 | 1,290,000 | Ruptura de stock |
📝 Instrucciones para Google Sheets:
- Abre Google Sheets y crea un nuevo documento
- Renombra la hoja como "Ventas Mensuales" (haz clic en el nombre de la pestaña)
- Selecciona toda la tabla de arriba y cópiala (Ctrl+C)
- Pega en la celda A1 de Google Sheets (Ctrl+V)
- Agrega un encabezado "Crecimiento %" en la celda C1
- ¡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
💡 Entendiendo el código:
- getSheetByName(): Busca la hoja llamada "Ventas Mensuales"
- getDataRange().getValues(): Lee todos los datos en un array
- for loop: Recorre cada fila calculando el crecimiento
- setValue(): Escribe el resultado en la columna C
- MailApp.sendEmail(): Envía el email de alerta
- Session.getActiveUser().getEmail(): Obtiene tu email automáticamente
🎬 Paso 3: Implementar el Script en Google Sheets
- Abrir el Editor de Scripts: En Google Sheets, ve a Extensiones > Apps Script
- Borrar código existente: Elimina todo el código que aparece por defecto (function myFunction() {...})
- Pegar el código: Copia el código completo generado por la IA y pégalo en el editor
- Guardar: Haz clic en el ícono de disco o presiona Ctrl+S (ponle un nombre como "Análisis Ventas")
- Listo! Ahora puedes ejecutar el script
▶️ Paso 4: Ejecutar el Script
- Selecciona la función: En el editor de Apps Script, asegúrate de que "calcularCrecimiento" esté seleccionado en el menú desplegable superior
- Haz clic en "Ejecutar": Presiona el botón ▶️ (Play) en la parte superior
- 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"
- Ver resultados: Regresa a tu hoja de Google Sheets y verás la columna C llena con los porcentajes de crecimiento
- 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:
- 📊 Promedio de crecimiento de todos los meses
- 🔝 Mejor mes (mayor crecimiento)
- 📉 Peor mes (menor crecimiento)
- 💰 Ventas totales acumuladas
📝 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
- ✓ Los datos están correctamente cargados en Google Sheets
- ✓ La hoja se llama "Ventas Mensuales"
- ✓ El script calcula correctamente el crecimiento % mes a mes
- ✓ Los valores aparecen en la columna C con formato de porcentaje
- ✓ El script detecta correctamente si hay crecimiento negativo
- ✓ Se recibe el email de alerta cuando corresponde
- ✓ (Bonus) Completa el desafío extra del resumen mensual
- ✓ (Bonus) Configura un activador programado para que se ejecute automáticamente
🎓 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.