LIMPIEZA, MACROS VBA Y CRUCE DE DATOS
Miércoles 19 de Marzo · 3 partes · Descarga los archivos ANTES de conectarte
Actua como analista financiero senior. Normaliza esta base para: - Formato uniforme de fechas (YYYY-MM-DD) - Eliminar duplicados por ID - Corregir inconsistencias de texto Devuelvelo listo para Excel.
Resultado esperado
Tu turno — Práctica guiada (10 min)
Ejecuta el prompt con el archivo. Luego modíficalo añadiendo: 'identifica también celdas vacías en la columna EMAIL' y observa cómo cambia el resultado. Después repite con Base_Empleados_Practica.xlsx.
Actua como experto en VBA para Excel (nivel senior). Necesito una macro que normalice una base de proveedores. Contexto del archivo: Hoja principal: Proveedores_Raw La fila 1 contiene encabezados. Columnas presentes (minimo estas): RIF, PROVEEDOR, CONTACTO, EMAIL, TELEFONO, DIRECCION, CIUDAD, CONDICION_PAGO, BANCO, CUENTA, FECHA_ALTA, OBS Problemas a corregir: - Texto: quitar dobles espacios, PROVEEDOR/CONTACTO/CIUDAD en Proper Case (preposiciones en minuscula) - RIF: formato estandar X-########-# - Email: quitar espacios, minusculas, marcar EMAIL_INVALIDO si no tiene @ - Telefono: formato +58XXXXXXXXXX o TEL_INVALIDO - Fecha: FECHA_ALTA a YYYY-MM-DD o FECHA_INVALIDA - Duplicados: primera ocurrencia OK, resto DUPLICADO en columna ESTATUS_DUPLICADO Requisitos tecnicos: - Buscar columnas por encabezado (no por letra fija) - Crear hoja nueva: Proveedores_Normalizado - Crear hoja Log_Errores: Fila, Tipo error, Valor original, Valor resultante - Nunca detener la macro si hay error: registrar y seguir Entrega el codigo VBA completo listo para pegar en un Modulo.
Resultado esperado
Tu turno — Práctica guiada (10 min)
Ejecuta la macro y revisa la hoja Log_Errores. ¿Cuántos RIF inválidos encontró? Modifica el prompt: añade 'Si CONDICION_PAGO está vacía, escribir POR DEFINIR'. Luego practica con el archivo de ferretera.
El caso de negocio de esta parte
Un plato tiene ingredientes, cada ingrediente tiene precio en 3 supermercados distintos, y la macro calcula el costo total del plato según cuál supermercado usas. 300 búsquedas en segundos. BUSCARV haría eso 300 veces, fila por fila.
Actua como experto senior en VBA para Excel. Necesito una macro para el archivo: Restaurante_Trattoria_Demo.xlsx El archivo tiene 4 hojas: 1. "Recetas" - columnas: ID_PLATO, NOMBRE_PLATO, INGREDIENTE, CANTIDAD, UNIDAD, PRECIO_VENTA_USD, COSTO_CENTRAL, COSTO_TODO1, COSTO_BODEGAS, COSTO_MIN, SUPER_MAS_BARATO, MARGEN_CENTRAL, MARGEN_TODO1, MARGEN_BODEGAS, SEMAFORO 2. "Central_Madeirense" - columnas: COD_INGREDIENTE, INGREDIENTE, PRECIO_USD, UNIDAD, OBS 3. "Todo1" - misma estructura (algunos precios como texto: "$0.092", "0,00720") 4. "Bodegas_Centro" - misma estructura Logica de la macro: - Construir 3 Dictionaries (uno por supermercado) clave = COD_INGREDIENTE, valor = PRECIO_USD - Para cada fila de Recetas: Limpiar precio con Trim y reemplazar comas/$ para convertir texto a numero Calcular: COSTO_SUPER = CANTIDAD x PRECIO Acumular por ID_PLATO (agrupar ingredientes) Buscar PRECIO_VENTA_USD hacia arriba por ID_PLATO si la celda esta vacia Calcular MARGEN = (VENTA - COSTO) / VENTA x 100 COSTO_MIN = minimo de los 3 costos SUPER_MAS_BARATO = nombre del mas barato Semaforo de margen (columna SEMAFORO): - Verde si MARGEN_MIN > 60% - Amarillo si entre 30% y 60% - Rojo si < 30% Log de auditoria (crear hoja "Log_Costos"): Plato | Supermercado | Costo Total | Margen% | Timestamp MsgBox ejecutivo al finalizar: - Total platos procesados - Plato mas rentable y menos rentable - Supermercado mas economico en promedio - % ingredientes sin precio No usar BUSCARV. Usar Dictionary. Dame el codigo VBA completo listo para ejecutar.
Resultado esperado
Tu turno — Práctica guiada (10 min)
Ejecuta la macro en el demo y revisa el MsgBox. ¿Cuál plato tiene menor margen? Luego abre Restaurante_Mediterraneo_Practica.xlsx y adapta el prompt cambiando los nombres de las hojas. ¿Cuál plato mediterráneo tiene el mejor margen?