Query to nowa funkcjonalność, którą wprowadzamy do formuły lookup, aby umożliwić bardziej precyzyjne kontrolowanie tego, jak wyniki są filtrowane na podstawie tego, co użytkownik wpisuje w polu autouzupełniania.
W standardowych lookupach mamy ograniczenie do 200 wyników, co oznacza, że funkcja lookup najpierw zwraca tylko pierwsze 200 wierszy z tabeli i dopiero potem filtruje je na podstawie tekstu, który użytkownik wpisuje w polu autouzupełniania. Jeśli w tabeli jest więcej niż 200 wierszy, lookup nie przeszuka wszystkich danych, ale tylko te pierwsze 200 i dopiero na ich podstawie wyświetli pasujące wyniki. To sprawia, że w przypadku, gdy odpowiednie dane znajdują się poza pierwszą dwusetką, użytkownik może ich po prostu nie zobaczyć.
W przypadku, gdy użyjemy funkcji query(), sytuacja wygląda inaczej. Zamiast ograniczać się do pierwszych 200 wyników, funkcja lookup przeszukuje całą tabelę lub listę danych i zwraca tylko pierwsze 50 pasujących wyników. W miarę jak użytkownik wpisuje kolejne litery w polu autouzupełniania, liczba wyników zwracanych przez funkcję stopniowo się zmniejsza, w zależności od tego, jak dokładnie wpisane hasło pasuje do danych w tabeli. Dzięki temu, użytkownik ma pełną kontrolę nad filtrowaniem wyników.
Przykład: lookup(SYSUSER, NAME) vs lookup(SYSUSER, NAME=query(), NAME)
Załóżmy, że mamy tabelę SYSUSER z danymi użytkowników (np. ich imionami i nazwiskami). Chcemy zaimplementować autouzupełnianie w komórce, które pomoże użytkownikowi wyszukiwać użytkowników z tej tabeli.
- Formuła bez query()
=lookup(SYSUSER, NAME)
Kiedy użytkownik zaczyna wpisywać tekst w polu autouzupełniania np. „a”, lookup najpierw pobiera tylko pierwsze 200 wierszy z tabeli SYSUSER, bez względu na to, czy zawierają one literę „a”. Po pobraniu tych 200 wierszy, lookup filtruje je, wybierając tylko te, które zawierają literę „a” w imieniu (czyli te, które pasują do tekstu wpisanego przez użytkownika). Zatem, niezależnie od tego, ile użytkowników zaczyna się na literę „a”, lookup wyświetli tylko te osoby, które znajdują się w pierwszych 200 wierszach tabeli.
2. Formuła z query()
=lookup(SYSUSER,NAME=QUERY(),NAME)
W tym przypadku, gdy użytkownik zaczyna wpisywać tekst np. literę „a”, funkcja lookup przeszukuje całą tabelę SYSUSER, zamiast ograniczać się do 200 pierwszych rekordów. Wyniki są następnie filtrowane na podstawie wprowadzonego tekstu, a użytkownik zobaczy 50 pierwszych pasujących wyników.
0 Komentarze