Echte Opzoekproblemen Oplossen
Veeg om het menu te tonen
Exacte overeenkomsten zijn nuttig voor relationele modellen, maar veel bedrijfssystemen werken met 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: geretourneerde resultaat;-1: retourneert de grootste waarde die kleiner dan of gelijk is aan de zoekwaarde.
Benaderende overeenkomsten vereisen dat de zoekarray oplopend is gesorteerd.
Logica op basis van niveaus
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 is gesorteerd.
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 het huidige aantal eenheden;Pricing_Tiers[Min_Units]: drempelkolom;Pricing_Tiers[Discount_Rate]: geretourneerde kortingswaarde;0: terugvalwaarde;-1: benaderende overeenkomstaand.
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 blad 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 zoekarray gesorteerd zijn bij het gebruik van een benaderende overeenkomst?
3. Wat maakt XLOOKUP geschikt voor omgekeerde zoekopdrachten?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.