Løsning af Reelle Opslagproblemer
Stryg for at vise menuen
Præcise match er nyttige for relationelle modeller, men mange forretningssystemer er afhængige af intervaller og grænseværdier i stedet for faste værdier. I dette kapitel bruges omtrentlige match til at opbygge logik for prisniveauer og dynamiske rabatberegninger.
Omtrentligt match med XLOOKUP
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], -1)
lookup_value: værdi der evalueres;lookup_array: grænseværdier;return_array: returneret resultat;-1: returnerer den største værdi, der er mindre end eller lig med opslagværdien.
Omtrentlige match kræver, at opslag-arrayet er sorteret i stigende rækkefølge.
Logik baseret på niveauer
Niveautabeller definerer minimumsgrænser i stedet for præcise match.
Eksempel:
| Min_Units | Discount_Rate |
|---|---|
| 1 | 0% |
| 5 | 5% |
| 10 | 10% |
| 20 | 15% |
Excel vurderer, hvor Units-værdien passer ind i grænseværdistrukturen og returnerer den tilsvarende rabatsats.
Opret et nyt regneark med navnet:
Pricing_Tiers
Tilføj følgende datasæt:
Min_Units;Discount_Rate
1;0%
5;5%
10;10%
20;15%
Konverter datasættet til en Excel-tabel.
Bekræft, at Min_Units er sorteret i stigende rækkefølge.
Inde i Sales_Data, opret en ny kolonne med navnet:
Discount_Rate
I den første række, indtast:
=XLOOKUP([@Units],Pricing_Tiers[Min_Units],Pricing_Tiers[Discount_Rate],0,-1)
[@Units]: nuværende række Units-værdi;Pricing_Tiers[Min_Units]: grænseværdikolonne;Pricing_Tiers[Discount_Rate]: returneret rabatværdi;0: standardværdi;-1: omtrentligt match.
Formater resultaterne som procenter.
Opret en ny kolonne med navnet:
Discounted_Revenue
I den første række, indtast:
=[@Revenue]*(1-[@Discount_Rate])
[@Revenue]: oprindelig Revenue-værdi;[@Discount_Rate]: anvendt rabatprocent.
Beregningen justeres nu dynamisk baseret på enhedsvolumen.
Rediger værdierne i Pricing_Tiers.
Bekræft, at alle afhængige beregninger opdateres automatisk.
Erstat den tidligere top-produktformel med:
=XLOOKUP(MAX(Sales_Data[Discounted_Revenue]),Sales_Data[Discounted_Revenue],Sales_Data[Product],"Not found")
Opslaget vurderer nu rabatteret præstation i stedet for rå omsætning.
I arket Summary, opret en inputsektion til:
Order_ID
I opslagets resultatcelle, indtast:
=XLOOKUP(M2,Sales_Data[Order_ID],Sales_Data[Customer_ID],"Not found")
M2: Order_ID input;Sales_Data[Order_ID]: opslagkolonne;Sales_Data[Customer_ID]: returneret værdi.
I en anden resultatcelle, indtast:
=XLOOKUP(M2,Sales_Data[Order_ID],Sales_Data[Product],"Not found")
Formlerne henter nu transaktionsdetaljer dynamisk fra den valgte Order_ID.
Skift værdien i M2.
Bekræft, at:
- Kundeværdier opdateres automatisk;
- Produktværdier opdateres automatisk;
- Formlerne altid returnerer den matchende transaktion.
1. Hvad gør match_mode = -1 i XLOOKUP?
2. Hvorfor skal opslag-arrayet være sorteret ved brug af omtrentlig match?
3. Hvad gør XLOOKUP velegnet til omvendte opslag?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat