Temat: Porównywanie wartości
Nie tylko w formułach Excela potrzebny jest umiar i rozsądek. Nadmiarowość zwykle bardzo szkodzi bezproblemowemu funkcjonowaniu - także niektóre komentarze są całkowicie zbyteczne.
------------------------
Wracając do sprawy - jak już zauważono, w Excelu (jak i w życiu) wiele zadań można rozwiązać na kila sposobów. Powstaje więc problem kryteriów wyboru.
Jeśli sami rozwiązujemy swój problem, to oczywiście tylko ze swoimi chęciami, możliwościami i umiejętnościami musimy się liczyć.
Kiedy zaś robimy coś dla kogoś - sprawa robi sie trudniejsza.
Ja również jestem zwolennikiem edukowania użytkowników - wiem jednak też, że kwanty wiedzy, przekazywanej za jednym zamachem, nie mogą być za duże, bo nie zostaną przyjęte, a to może wywołać trwałą niechęć wobec arkusza kalkulacyjnego.
To może nie być oczywiste dla wszystkich, ale konieczność głębokiej ingerencji w konstrukcję arkusza - sortowanie, przestawianie kolumn, wstawianie nowych - nie jest sprawą błahą dla nawet trochę zaawansowanego użytkownika Excela. Nie każdy ma głębokość cofania zmian ustawioną na 100, nie każdy umie sobie poradzić, kiedy program zawiesi się albo stanie się cokolwiek nieprzewidzianego.
Dodatkowo, co by nie mówić, formuła działania funkcji
Wyszukaj, we wszystkich jej odmianach, jest wbrew pozorom trudna do zrozumienia i zastosowania. Chodzi nie tylko o wstawianie dodatkowej kolumnie przy wyszukiwaniu pionowym, ale też o ustawienie parametru decydującego o dokładności wyszukiwania. Intuicja mówi bowiem, że jeśli szukamy, przecież oczywiście chodzi o wartości dokładne. Również konieczność sortowania wymyka się intuicji - bo przecież szukana wartość albo jest w danej kolumnie, albo jej nie ma. Nienaturalne jest to, że zależy to (dla funkcji) od tego, czy wartości są posortowane rosnąco. To są sprawy naprawdę niełatwe nawet dla ludzi, którzy sprawnie nawigują po arkuszu, znają podstawowe operacje, umieją budować tabelki.
Procedura przeszukująca napisana w VB, co już sprawdziłem na żywym przykładzie (nie Eweliny - ;-) ) jest, może wbrew pozorom, zrozumiała łatwiej. Oczywiście nie chodzi o wygląd - laik patrzy na zapis VB z należytym szacunkiem - ale o tzw. logikę działania.
To, że "Excel" pobiera z jednej kolumny daną i szuka takiej samej w drugiej kolumnie, idąc od góry, jest zrozumiałe. To, że jeśli znajdzie, to pobiera następną daną i sprawdza, jest zrozumiałe. Że, jeśli nie znajdzie, to robi w oznaczonym miejscu stosowną adnotację i sprawdza następną daną - jest zrozumiałe.
Ze kiedy skończy, wystawia stosowny komunikat, jest zrozumiałe.
Ba! - użytkownik bez oporu - a nawet z zadowoleniem przyjmie i to, że procedura wydrukuje mu potrzebne zestawienie, albo wyśle zawiadomienie do oddalonego adresata.
Takie działanie często wywołuje apetyt na wiedzę, zwłaszcza jeśli wiedzący nie ukrywa jej i nie kreuje się na czarodzieja.
Praca została wykonana, bezcenny arkusz ani razu nie został zmieniony w istniejącej części.
Mało tego - procedura sprawdzi, ile razy musi wykonać pętlę poszukiwań, więc nie trzeba za każdym razem ustawiać argumentów funkcji. I - co też sprawdziłem - kiedy się wytłumaczy jak VB rozpoznaje kolumny i wiersze w użytych obiektach, to trochę zaawansowany użytkownik jest w stanie dokonać skutecznej modyfikacji kodu.
Dlatego też niezwykle rzadko zabezpieczam kod (jedynie wtedy, kiedy Excel działa w postaci formy użytkownika, jako specjalizowany program). Użytkownik to rzadko desperat.. ;-)
Mam nadzieję, że ten długi wykład nie znużył - bo jest kwestią naprawdę ważną sposób postępowania przy udzielaniu pomocy.
Oczywiście - każdy to robi według swojej wiedzy, możliwości i chęci.
Cieszę się, że mogłem zaprezentować także swoje podejście - przy wielkim szacunku dla metod i sposobów innych fanów Excela.