Problem z ostatnich dni. Dostawca przysyła nam spis zamówionych produktów w zupełnie innej formie niż my trzymamy w swojej bazie. Chodzi o buty. On przynosi zapis taki jak zwykle jest na fakturze – po kolei model, rozmiar, ilość. Natomiast my mamy przed sobą tabelę – w kolejnych wierszach dziesiątki modeli, w kolumnach rozmiary i podane ilości. Jeśli trzeba ręcznie porównać 5 czy 10 wartości, sprawa jest prosta. Ale nie tu – musimy sprawdzić czy zgadza się lista mająca prawie 1000 pozycji.
Zadanie rozwiązaliśmy przy pomocy połączenia dwóch funkcji: VLOOKUP (WYSZUKAJ.PIONOWO) i MATCH (PODAJ.POZYCJĘ). Pierwszą z tych funkcji omawiam szeroko w innym wpisie.
Rozwiązanie problemu możesz znaleźć w tym pliku. Jeśli chcesz z nim pomajstrować, zrób sobie własną kopię.
Nasza tabela wyglda tak:
Natomiast kontrahent wrzuca zapytanie w formie takiej:
Skoro mamy jakieś wspólne identyfikatory – kod producenta i rozmiar. Możemy określić jednoznacznie o który produkt chodzi. Zadanie dzielimy na dwa etapy. Najpierw znajdujemy odpowiedni identyfikator.
=vlookup(B3;$G$3:$AD$23; [kolumna];False)
- B3 to przesłany przez kontrahenta kod produktu
- $G$3:$AD$23 – to nasza tabela. W pierwszej kolumnie znajduje się kod. Dalej rozmiary
- [kolumna] – to zrobimy w drugim etapie
- False – to informacja, że nasza tabela nie jest sortowana i szukamy konkretnej wartości, a nie przybliżenia
A gdy już jesteśmy w odpowiednim wierszu – szukamy odpowiedniej kolumny z rozmiarem by pobrać z niej wartość przy pomocy MATCH:
match(C3; $G$2:$AD$2;0)
- C3 to komórka w której znajduje się rozmiar w zapytaniu,
- $G$2:$AD$2 – to nagłówek tabeli, gdzie mamy listę rozmiarów
- 0 – to sposób pracy funkcji match – znajduje dokładną wartość, gdy zakres jest nieposortowany
Cała funkcja wygląda tak:
=vlookup(B3;$G$3:$AD$23;match(C3; $G$2:$AD$2;0);False)
Na koniec proponuję to obudować jeszcze w formułę tabelową, tak by jedna funkcja obsłużyła nam całe zapytanie i nie trzeba było jej kopiować. Tą metodę opisałem szerzej w innym wpisie.