Echte Opzoekproblemen Oplossen
Veeg om het menu te tonen
Exacte overeenkomsten zijn nuttig voor relationele modellen, maar veel bedrijfssystemen vertrouwen op bereiken en drempelwaarden in plaats van vaste waarden. In dit hoofdstuk wordt gebruikgemaakt van benaderende overeenkomsten om logica voor prijsniveaus en dynamische kortingsberekeningen op te bouwen.
Benaderende overeenkomst met XLOOKUP
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], -1)
lookup_value: te evalueren waarde;lookup_array: drempelwaarden;return_array: geretourneerd resultaat;-1: retourneert de grootste waarde die kleiner dan of gelijk is aan de zoekwaarde.
Bij benaderende overeenkomsten moet de zoekarray oplopend gesorteerd zijn.
Niveau-gebaseerde logica
Niveautabellen definiëren minimale drempelwaarden in plaats van exacte overeenkomsten.
Voorbeeld:
| Min_Units | Discount_Rate |
|---|---|
| 1 | 0% |
| 5 | 5% |
| 10 | 10% |
| 20 | 15% |
Excel bepaalt waar de Units-waarde binnen de drempelstructuur valt en retourneert het bijbehorende kortingspercentage.
Maak een nieuw werkblad met de naam:
Pricing_Tiers
Voeg de volgende dataset toe:
Min_Units;Discount_Rate
1;0%
5;5%
10;10%
20;15%
Zet de dataset om in een Excel-tabel.
Controleer of Min_Units oplopend gesorteerd is.
Voeg in Sales_Data een nieuwe kolom toe met de naam:
Discount_Rate
Typ in de eerste rij:
=XLOOKUP([@Units],Pricing_Tiers[Min_Units],Pricing_Tiers[Discount_Rate],0,-1)
[@Units]: waarde van Units in de huidige rij;Pricing_Tiers[Min_Units]: drempelkolom;Pricing_Tiers[Discount_Rate]: geretourneerde kortingswaarde;0: terugvalwaarde;-1: benaderende overeenkomstaanduiding.
Formatteer de resultaten als percentages.
Maak een nieuwe kolom met de naam:
Discounted_Revenue
Typ in de eerste rij:
=[@Revenue]*(1-[@Discount_Rate])
[@Revenue]: oorspronkelijke omzetwaarde;[@Discount_Rate]: toegepast kortingspercentage.
De berekening past zich nu dynamisch aan op basis van het aantal eenheden.
Wijzig de waarden in Pricing_Tiers.
Controleer of alle afhankelijke berekeningen automatisch worden bijgewerkt.
Vervang de vorige formule voor het beste product door:
=XLOOKUP(MAX(Sales_Data[Discounted_Revenue]),Sales_Data[Discounted_Revenue],Sales_Data[Product],"Not found")
De opzoeking evalueert nu de prestaties na korting in plaats van de ruwe omzet.
Maak op het werkblad Summary een invoersectie voor:
Order_ID
Typ in de opzoekresultaatcel:
=XLOOKUP(M2,Sales_Data[Order_ID],Sales_Data[Customer_ID],"Not found")
M2: Order_ID-invoer;Sales_Data[Order_ID]: opzoekkolom;Sales_Data[Customer_ID]: geretourneerde waarde.
Typ in een andere resultaatcel:
=XLOOKUP(M2,Sales_Data[Order_ID],Sales_Data[Product],"Not found")
De formules halen nu dynamisch transactiegegevens op van de geselecteerde Order_ID.
Wijzig de waarde in M2.
Controleer of:
- Klantwaarden automatisch worden bijgewerkt;
- Productwaarden automatisch worden bijgewerkt;
- De formules altijd de bijbehorende transactie retourneren.
1. Wat doet match_mode = -1 in XLOOKUP?
2. Waarom moet de opzoekarray gesorteerd zijn bij het gebruik van een benaderende overeenkomst?
3. Wat maakt XLOOKUP geschikt voor omgekeerde opzoekingen?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.