Todellisten Hakuongelmien Ratkaiseminen
Pyyhkäise näyttääksesi valikon
Tarkat osumat ovat hyödyllisiä relaatiomalleissa, mutta monet liiketoimintajärjestelmät perustuvat rajoihin ja kynnysarvoihin kiinteiden arvojen sijaan. Tässä luvussa käytetään likimääräistä hakua porrastetun hinnoittelulogiikan ja dynaamisten alennuslaskelmien rakentamiseen.
Likimääräinen haku XLOOKUP-funktiolla
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], -1)
lookup_value: arvioitava arvo;lookup_array: kynnysarvot;return_array: palautettava tulos;-1: palauttaa suurimman arvon, joka on pienempi tai yhtä suuri kuin hakuarvo.
Likimääräinen haku vaatii, että hakutaulukko on lajiteltu nousevaan järjestykseen.
Porrastettu logiikka
Porrastaulukoissa määritellään vähimmäiskynnykset tarkkojen osumien sijaan.
Esimerkki:
| Min_Units | Discount_Rate |
|---|---|
| 1 | 0% |
| 5 | 5% |
| 10 | 10% |
| 20 | 15% |
Excel arvioi, mihin kohtaan Units-arvo sijoittuu kynnysrakenteessa ja palauttaa vastaavan alennusprosentin.
Luo uusi laskentataulukko nimeltä:
Pricing_Tiers
Lisää seuraava tietoaineisto:
Min_Units;Discount_Rate
1;0%
5;5%
10;10%
20;15%
Muunna tietoaineisto Excel-taulukoksi.
Varmista, että Min_Units on lajiteltu nousevaan järjestykseen.
Lisää Sales_Data-taulukkoon uusi sarake nimeltä:
Discount_Rate
Kirjoita ensimmäiselle riville:
=XLOOKUP([@Units],Pricing_Tiers[Min_Units],Pricing_Tiers[Discount_Rate],0,-1)
[@Units]: nykyisen rivin Units-arvo;Pricing_Tiers[Min_Units]: kynnysarvokolumni;Pricing_Tiers[Discount_Rate]: palautettava alennusarvo;0: oletusarvo;-1: likimääräinen hakutila.
Muotoile tulokset prosentteina.
Luo uusi sarake nimeltä:
Discounted_Revenue
Kirjoita ensimmäiselle riville:
=[@Revenue]*(1-[@Discount_Rate])
[@Revenue]: alkuperäinen Revenue-arvo;[@Discount_Rate]: käytetty alennusprosentti.
Laskenta mukautuu nyt dynaamisesti yksikkömäärän mukaan.
Muokkaa arvoja taulukossa Pricing_Tiers.
Varmista, että kaikki riippuvat laskelmat päivittyvät automaattisesti.
Korvaa aiempi huipputuotteen kaava seuraavalla:
=XLOOKUP(MAX(Sales_Data[Discounted_Revenue]),Sales_Data[Discounted_Revenue],Sales_Data[Product],"Not found")
Haku arvioi nyt alennetun suorituskyvyn eikä raakaa Revenue-arvoa.
Luo Summary-välilehdelle syöteosio:
Order_ID
Kirjoita hakutulossoluun:
=XLOOKUP(M2,Sales_Data[Order_ID],Sales_Data[Customer_ID],"Not found")
M2: Order_ID-syöte;Sales_Data[Order_ID]: hakukolumni;Sales_Data[Customer_ID]: palautettava arvo.
Kirjoita toiseen tulossoluun:
=XLOOKUP(M2,Sales_Data[Order_ID],Sales_Data[Product],"Not found")
Kaavat hakevat nyt tapahtumatiedot dynaamisesti valitun Order_ID:n perusteella.
Vaihda arvoa solussa M2.
Varmista, että:
- Asiakastiedot päivittyvät automaattisesti;
- Tuotetiedot päivittyvät automaattisesti;
- Kaavat palauttavat aina vastaavan tapahtuman.
1. Mitä match_mode = -1 tekee funktiossa XLOOKUP?
2. Miksi hakualueen täytyy olla lajiteltu käytettäessä likimääräistä vastaavuutta?
3. Mikä tekee XLOOKUP-funktiosta sopivan käänteisiin hakuihin?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme