Resolviendo Problemas Reales de Búsqueda
Desliza para mostrar el menú
Las coincidencias exactas son útiles para modelos relacionales, pero muchos sistemas empresariales dependen de rangos y umbrales en lugar de valores fijos. En este capítulo, se utiliza la coincidencia aproximada para construir lógica de precios por niveles y cálculos dinámicos de descuentos.
Coincidencia Aproximada con XLOOKUP
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], -1)
lookup_value: valor evaluado;lookup_array: valores umbral;return_array: resultado devuelto;-1: devuelve el valor más grande menor o igual que el valor buscado.
La coincidencia aproximada requiere que el array de búsqueda esté ordenado en orden ascendente.
Lógica Basada en Niveles
Las tablas de niveles definen umbrales mínimos en lugar de coincidencias exactas.
Ejemplo:
| Min_Units | Discount_Rate |
|---|---|
| 1 | 0% |
| 5 | 5% |
| 10 | 10% |
| 20 | 15% |
Excel evalúa dónde encaja el valor de Units dentro de la estructura de umbrales y devuelve la tasa de descuento correspondiente.
Crea una nueva hoja de cálculo llamada:
Pricing_Tiers
Agrega el siguiente conjunto de datos:
Min_Units;Discount_Rate
1;0%
5;5%
10;10%
20;15%
Convierte el conjunto de datos en una Tabla de Excel.
Confirma que Min_Units esté ordenado en orden ascendente.
Dentro de Sales_Data, crea una nueva columna llamada:
Discount_Rate
En la primera fila, escribe:
=XLOOKUP([@Units],Pricing_Tiers[Min_Units],Pricing_Tiers[Discount_Rate],0,-1)
[@Units]: valor de Units de la fila actual;Pricing_Tiers[Min_Units]: columna de umbrales;Pricing_Tiers[Discount_Rate]: valor de descuento devuelto;0: valor alternativo;-1: modo de coincidencia aproximada.
Da formato a los resultados como porcentajes.
Crea una nueva columna llamada:
Discounted_Revenue
En la primera fila, escribe:
=[@Revenue]*(1-[@Discount_Rate])
[@Revenue]: valor original de Revenue;[@Discount_Rate]: porcentaje de descuento aplicado.
El cálculo ahora se ajusta dinámicamente según el volumen de unidades.
Modifica los valores dentro de Pricing_Tiers.
Confirma que todos los cálculos dependientes se actualizan automáticamente.
Reemplaza la fórmula anterior de producto superior con:
=XLOOKUP(MAX(Sales_Data[Discounted_Revenue]),Sales_Data[Discounted_Revenue],Sales_Data[Product],"Not found")
La búsqueda ahora evalúa el rendimiento descontado en lugar del Revenue bruto.
En la hoja Summary, crea una sección de entrada para:
Order_ID
En la celda de resultado de búsqueda, escribe:
=XLOOKUP(M2,Sales_Data[Order_ID],Sales_Data[Customer_ID],"Not found")
M2: entrada de Order_ID;Sales_Data[Order_ID]: columna de búsqueda;Sales_Data[Customer_ID]: valor devuelto.
En otra celda de resultado, escribe:
=XLOOKUP(M2,Sales_Data[Order_ID],Sales_Data[Product],"Not found")
Las fórmulas ahora recuperan los detalles de la transacción dinámicamente a partir del Order_ID seleccionado.
Cambia el valor dentro de M2.
Confirma que:
- Los valores de cliente se actualizan automáticamente;
- Los valores de producto se actualizan automáticamente;
- Las fórmulas siempre devuelven la transacción coincidente.
1. ¿Qué hace match_mode = -1 en XLOOKUP?
2. ¿Por qué debe estar ordenada la matriz de búsqueda al usar coincidencia aproximada?
3. ¿Qué hace que XLOOKUP sea adecuado para búsquedas inversas?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla