Strona 1 z 1

[SOLVED] Cennik

: ndz sie 11, 2019 11:13 pm
autor: ŁUKASZ
Witam.
Jest to mój pierwszy wątek więc proszę o wyrozumiałość :D
Próbuje stworzyć w arkuszu coś na wzór cennika . Problem w tym że nie wiem jak napisać funkcje.
Ale po kolei. W pierwszym arkuszu mam cennik produktów (kod , nazwę , cenę i m2)
i chciałbym w drugim arkuszu (wycena ) po wpisaniu kodu żeby wszystkie dane się uzupełniły .
I własnie z tą funkcją nie umiem sobie poradzić. w załączniku plik z tym jak bym chciał żeby to wyglądało.

Re: Cennik

: pn sie 12, 2019 1:34 pm
autor: Jermor
Ty nie musisz pisać funkcji. Musisz wiedzieć jakiej funkcji wbudowanej użyć w swoim problemie. Potrzebna jest ci jakaś funkcja wyszukiwania, a tych jest kilka, np.: PODAJ.POZYCJĘ, WYSZUKAJ.PIONOWO, WYSZUKAJ. W związku z tym i tworzone formuły mogą być rożne.
Najpierw jednak kilka słów o twoim arkuszu. Zarówno cennik jak i wycena będą tabelami o dużej ilości wierszy. Już teraz dla wyceny zarezerwowałeś ich 400. To oznacza, że gdy będziesz wpisywał wartości w okolicach 40. wiersza, zniknie ci nagłówek tabeli i znajdujące się w okolicy, na bieżąco podsumowywane, pozycje RAZEM. Dlatego powinieneś zmodyfikować dwa pierwsze wiersze i przytwierdzić je. Dzięki temu przy przewijaniu tabelki zawsze będą widoczne. Takie poprawione modyfikacje zwracam ci w przykładowym pliku.
Po drugie, do obliczania wartości produktu (użyłeś nagłówka CENA RAZEM, co nie jest adekwatne do tego co reprezentuje ta liczba), czyli iloczynu ceny i ilości sztuk zastosowałeś funkcję ILOCZYN. Niby jest OK ale... Jeżeli w formule w postaci =ILOCZYN(A1;B1) jedna z komórek jest pusta, to jest traktowana jak 1 i dostajesz fałszywy wynik. Lepiej po prostu napisać formułę =A1*B1.
Po trzecie w formule sumowania wartości produktów napisałeś =SUMA(G2:G400;G400) co jest chyba tylko zwykłą pomyłką, bo do całej sumy dodajesz jeszcze zawartość komórki G400.
Musisz zdawać sobie sprawę z konieczności jednoznacznego wpisywania kodów produktów, one bowiem są podstawą do wyszukania danych w cenniku. U ciebie, w tych przykładowych kodach, wpisałeś K1 do K5, ale kod K3 jest wpisany jako litera K, cyfra 3 i znak spacji. W tej sytuacji szukanie kodu K3 skończyłoby się niepowodzeniem, mimo, że wizualnie byłby widoczny (znaku spacji nie widać).
W zwracanym ci przykładzie zastosowałem nazwy dla obszarów cennika. Nazwę "Cennik_kod" zastosowałem do obszaru zawierającego kody produktów w arkuszu "Cennik". Do pozostałych kolumn zastosowałem nazwę "cennik". Będzie to wygodniejsze w pisaniu formuł.
Wprowadziłem dodatkową klumnę w arkuszu "wycena" i nazwałem ją "Robocza". Kolumnę tę możesz ukryć w działającym arkuszu. Wprowadziłem ja aby umieścić w niej numer pozycji na której w obszarze "Cennik_kod" zostanie znaleziony kod wpisany do komórki obok. Rzecz w tym, że jeżeli kod nie zostanie znaleziony ta formuła zwróci błąd #N/D mówiący o tym, że albo wpisałem błędny kod albo takiego kodu nie ma w cenniku.
Formuły w kolumnach "NAZWA", "CENA" i "M2" przy pomocy funkcji INDEKS zwracają wartości pobrane z obszaru "cennik". INDEKS jest częścią funkcji JEŻELI, która najpierw sprawdza, czy w komórce roboczej jest błąd (wspomniane #N/D) i jeśli jest to wstawia tylko pusty ciąg.
Co jeszcze powinieneś zrobić? W arkuszu "wycena" komórki w kolumnie "KOD" i "SZT" powinieneś sformatować jako niechronione a następnie włączyć ochronę tego arkusza. Dzięki temu nikt niechcący nie zmieni zawartości komórek, które zostały "obliczone" na podstawie wpisanego kodu i ilości sztuk.