Lösa Verkliga Uppslagsproblem
Svep för att visa menyn
Exakta träffar är användbara för relationsmodeller, men många affärssystem bygger på intervall och tröskelvärden istället för fasta värden. I detta kapitel används ungefärlig matchning för att skapa logik för nivåbaserad prissättning och dynamiska rabattberäkningar.
Ungefärlig matchning med XLOOKUP
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], -1)
lookup_value: värde som utvärderas;lookup_array: tröskelvärden;return_array: returnerat resultat;-1: returnerar det största värdet som är mindre än eller lika med sökvärdet.
Ungefärlig matchning kräver att sökarrayen är sorterad i stigande ordning.
Nivåbaserad logik
Nivåtabeller definierar minimigränser istället för exakta träffar.
Exempel:
| Min_Units | Discount_Rate |
|---|---|
| 1 | 0% |
| 5 | 5% |
| 10 | 10% |
| 20 | 15% |
Excel utvärderar var Units-värdet passar in i tröskelstrukturen och returnerar motsvarande rabattsats.
Skapa ett nytt kalkylblad med namnet:
Pricing_Tiers
Lägg till följande dataset:
Min_Units;Discount_Rate
1;0%
5;5%
10;10%
20;15%
Konvertera datasetet till en Excel-tabell.
Bekräfta att Min_Units är sorterad i stigande ordning.
I Sales_Data, skapa en ny kolumn med namnet:
Discount_Rate
I den första raden, skriv:
=XLOOKUP([@Units],Pricing_Tiers[Min_Units],Pricing_Tiers[Discount_Rate],0,-1)
[@Units]: aktuellt radvärde för Units;Pricing_Tiers[Min_Units]: tröskelkolumn;Pricing_Tiers[Discount_Rate]: returnerat rabattvärde;0: reservvärde;-1: ungefärlig matchningsläge.
Formatera resultaten som procenttal.
Skapa en ny kolumn med namnet:
Discounted_Revenue
I den första raden, skriv:
=[@Revenue]*(1-[@Discount_Rate])
[@Revenue]: ursprungligt intäktsvärde;[@Discount_Rate]: tillämpad rabattprocent.
Beräkningen justeras nu dynamiskt baserat på volymen av enheter.
Ändra värdena i Pricing_Tiers.
Bekräfta att alla beroende beräkningar uppdateras automatiskt.
Byt ut den tidigare topproduktsformeln mot:
=XLOOKUP(MAX(Sales_Data[Discounted_Revenue]),Sales_Data[Discounted_Revenue],Sales_Data[Product],"Not found")
Uppslaget utvärderar nu rabatterad prestation istället för råa intäkter.
I bladet Summary, skapa en inmatningssektion för:
Order_ID
I uppslagsresultatcellen, skriv:
=XLOOKUP(M2,Sales_Data[Order_ID],Sales_Data[Customer_ID],"Not found")
M2: Order_ID-inmatning;Sales_Data[Order_ID]: uppslagskolumn;Sales_Data[Customer_ID]: returnerat värde.
I en annan resultatcell, skriv:
=XLOOKUP(M2,Sales_Data[Order_ID],Sales_Data[Product],"Not found")
Formlerna hämtar nu transaktionsdetaljer dynamiskt från vald Order_ID.
Ändra värdet i M2.
Bekräfta att:
- Kundvärden uppdateras automatiskt;
- Produktvärden uppdateras automatiskt;
- Formlerna returnerar alltid den matchande transaktionen.
1. Vad gör match_mode = -1 i XLOOKUP?
2. Varför måste uppslagsarrayen vara sorterad vid användning av ungefärlig matchning?
3. Vad gör XLOOKUP lämplig för omvända uppslag?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal