Sowia Ściąga · Darmowa AkademiaOwl Cheat Sheet · Free Academy
XLOOKUP i dopasowywanie danychXLOOKUP & data matching
Cała lekcja na jednej kartce A4 — wydrukuj i powieś nad biurkiem.The whole lesson on one A4 sheet — print it and pin it above your desk.
Składnia / skrótySyntax / shortcuts
X.WYSZUKAJ (XLOOKUP) — nowy standard (Excel 2021 / Microsoft 365):
XLOOKUP — the new standard (Excel 2021 / Microsoft 365):
=X.WYSZUKAJ(co_szukasz; gdzie_szukać; co_zwrócić; [gdy_nie_znaleziono])=XLOOKUP(lookup_value; lookup_array; return_array; [if_not_found]) =X.WYSZUKAJ(A2;Cennik!A:A;Cennik!B:B;"Brak w cenniku") — kod z A2 → cena z cennika=XLOOKUP(A2;PriceList!A:A;PriceList!B:B;"Not in price list") — code from A2 → its pricePo Ctrl+T na cenniku — odwołania strukturalne (czytelniejsze i odporne na rosnące dane):
After Ctrl+T on the price list — structured references (clearer and growth-proof):
=X.WYSZUKAJ(A2;Cennik[Kod produktu];Cennik[Cena])=XLOOKUP(A2;PriceList[Product Code];PriceList[Price])Starszy Excel (2019 i wcześniejsze):
Older Excel (2019 and earlier):
=WYSZUKAJ.PIONOWO(A2;Cennik!A:B;2;FAŁSZ) — czwarty argument FAŁSZ jest obowiązkowy!=VLOOKUP(A2;PriceList!A:B;2;FALSE) — the fourth argument FALSE is mandatory!Deska ratunkowa na każdą wersję — INDEKS (INDEX) + PODAJ.POZYCJĘ (MATCH):
The life raft for every version — INDEX + MATCH:
=INDEKS(Cennik!B:B;PODAJ.POZYCJĘ(A2;Cennik!A:A;0)) — 0 = dokładne dopasowanie=INDEX(PriceList!B:B;MATCH(A2;PriceList!A:A;0)) — 0 = exact match| CechaFeature | WYSZUKAJ.PIONOWO (VLOOKUP) | X.WYSZUKAJ (XLOOKUP) |
|---|---|---|
| KierunekDirection | tylko w praworight only | dowolnyany |
| Brak wartościMissing value | #N/D! → owijaj w JEŻELI.BŁĄDwrap in IFERROR | wbudowany argumentbuilt-in if_not_found |
| Domyślne dopasowanieDefault match | niedokładne (pułapka!)approximate (trap!) | dokładne (bezpieczne)exact (safe) |
PułapkiPitfalls
- Spacja na końcu kodu → „PROD-123” ≠ „PROD-123 ” i formuła zwraca #N/D!. Leczenie: USUŃ.ZBĘDNE.ODSTĘPY (TRIM) albo PODSTAW (SUBSTITUTE).
- A trailing space in a code → "PROD-123" ≠ "PROD-123 " and the formula returns #N/A!. Cure: TRIM() or SUBSTITUTE().
- Duplikaty w tabeli szukania → X.WYSZUKAJ zwraca pierwszy traf i milczy. Kolumna klucza musi być unikalna.
- Duplicates in the lookup table → XLOOKUP returns the first hit and stays silent. The key column must be unique.
- Tekst „123” ≠ liczba 123 → ujednolić typy (Dane → Tekst jako kolumny).
- Text "123" ≠ number 123 → force one type (Data → Text to Columns).
- Wielkość liter jest ignorowana — „ABC” = „abc”. Gdy to różne kody: PORÓWNAJ (EXACT).
- Letter case is ignored — "ABC" = "abc". When they are different codes: EXACT().
- WYSZUKAJ.PIONOWO bez FAŁSZ → niedokładne dopasowanie zwraca losowe wartości. Przy kodach produktów to katastrofa.
- VLOOKUP without FALSE → approximate match returns random values. With product codes that's a disaster.
- Całe kolumny (A:A) w dużych plikach → Excel mieli milion wierszy. Używaj zakresów albo Tabel.
- Whole columns (A:A) in large files → Excel grinds through a million rows. Use ranges or Tables.
- Ręczne przepisywanie zamiast formuły → błąd co dziesiąty wiersz i zero aktualizacji przy zmianie cennika. Złota zasada: nigdy nie przepisuj tego, co Excel może dopasować sam.
- Manual copying instead of a formula → an error every tenth row and no updates when the price list changes. Golden rule: never copy by hand what Excel can match on its own.
- Ślepe zaufanie danym „z systemu” → ERP-y kochają spacje i mieszane typy. Zawsze przejrzyj pierwsze 10 wierszy przed napisaniem formuły.
- Blind trust in “system data” → ERPs love spaces and mixed types. Always review the first 10 rows before writing the formula.
Checklista — sprawdź, czy umieszChecklist — test yourself
- Rozpoznam sytuację „dane trzeba połączyć z innej tabeli” (cennik, słownik, rejestr).
- Recognise the “data must be pulled from another table” situation (price list, dictionary, register).
- Napiszę X.WYSZUKAJ (XLOOKUP) z argumentem if_not_found zamiast błędu #N/D!.
- Write an XLOOKUP with the if_not_found argument instead of the #N/A! error.
- Wyjaśnię, czym X.WYSZUKAJ wygrywa z WYSZUKAJ.PIONOWO (VLOOKUP).
- Explain how XLOOKUP beats VLOOKUP.
- Napiszę INDEKS+PODAJ.POZYCJĘ (INDEX+MATCH) dla starszej wersji Excela.
- Write INDEX+MATCH as a fallback for older Excel versions.
- Użyję odwołań strukturalnych po zamianie cennika w Tabelę (Ctrl+T).
- Use structured references after turning the price list into a Table (Ctrl+T).
- Wykryję i naprawię cztery klasyki: spacje, duplikaty, typy danych, wielkość liter.
- Detect and fix the four classics: spaces, duplicates, data types, letter case.
- Zmienię cenę w cenniku i zobaczę, jak zamówienia aktualizują się same.
- Change a price in the price list and watch the orders update by themselves.