Todellisten Hakuongelmien Ratkaiseminen
Pyyhkäise näyttääksesi valikon
Tarkat osumat ovat hyödyllisiä relaatiomalleissa, mutta monet liiketoimintajärjestelmät perustuvat vaihteluväleihin ja raja-arvoihin 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: raja-arvot;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äisrajat tarkkojen osumien sijaan.
Esimerkki:
| Min_Units | Discount_Rate |
|---|---|
| 1 | 0% |
| 5 | 5% |
| 10 | 10% |
| 20 | 15% |
Excel arvioi, mihin kohtaan Units-arvo sijoittuu raja-arvorakenteessa 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]: raja-arvosarake;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 liikevaihdon perusteella, ei pelkän Revenue-arvon.
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]: hakusarake;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 oikean tapahtuman.
1. Mitä match_mode = -1 tekee XLOOKUP-funktiossa?
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