Strona 1 z 1

Taki prosty magazyn...

: sob lip 28, 2012 3:05 pm
autor: syzyf37
Witam!

Potrzebuję zrobić prosty magazyn. Utworzyłem kilka arkuszy. Trzy arkusze mają zawierać stany magazynowe według kategorii produktów.
A jeden arkusz ma zawierać historię zmian, aby było wiadomo kto, skąd i dokąd przekazał ile towaru.
Chodzi o to aby stany same się liczyły...

Idea jest taka:
Jest arkusz „Historia” gdzie zapisywane są wszystkie przekazania towaru pomiędzy oddziałami.
Chodzi o to aby w arkuszach ze stanem, same liczyły się ilości towaru.
Np.
Przedmiot_1 w ilości 10 szt. został przekazany z Oddziału 1 do Oddziału 2 (wpis w arkuszu „Historia”).
W arkuszu Stan_Towar_1 w wierszu nr 3 - Przedmiot_1, w kolumnie C - Oddział 1, zostaje odjęta wartość liczbowa „10”, a w kolumnie D „Oddział 2” zostaje dodana wartość liczbowa „10”.

Pytanie brzmi jak to zrobić?

Pozdrawiam

Syzyf37

Re: Taki prosty magazyn...

: ndz lip 29, 2012 4:29 am
autor: Raknor
Moja propozycja to:

W arkuszu Historia sporządzić na boku dodatkową kolumnę zawierającą:

Kod: Zaznacz cały

=C2&"_"&G2
W arkuszu Stan_Towar_(1...n) wypełnić komórki formułą:

Kod: Zaznacz cały

=JEŻELI(SUMA.JEŻELI(Historia.$J$2:$J31; $B3&"_"&C$2;Historia.$D$2:$D30)=0;"";SUMA.JEŻELI(Historia.$J$2:$J31; $B3&"_"&C$2;Historia.$D$2:$D30))
W załączniku plik demonstracyjny.

Re: Taki prosty magazyn...

: ndz lip 29, 2012 9:40 am
autor: syzyf37
Witam!

Formuła liczy towar przekazany do Oddziału (Dokąd) i dodaje (sumuje) wartość. Wszystko działa ok.
Ale brakuje jeszcze liczenia (odejmowania) towaru wydanego z Oddziału (kolumna Skąd).

Czy da się to (odejmowanie) także liczyć?

P.S.
Czy mógłbym otrzymać opis "jak to jest zrobione", jakie reguły zostały wykorzystane, aby zrozumieć zasadę działania formuł?

Pozdrawiam Syzyf37

Re: Taki prosty magazyn...

: ndz lip 29, 2012 10:31 am
autor: Raknor
Faktycznie drobny błąd :D

Zmiany jakie zaszły:
Sporządzone zostały dwie kolumny dodatkowe w arkuszu Historia.

Kod: Zaznacz cały

=C2&"_"&E2
Łączenie w pary przedmiotu z oddziałem, który oddał dany przedmiot.

Kod: Zaznacz cały

=C2&"_"&G2
Łączenie w pary przedmiotu z oddziałem, który przyjął dany przedmiot.

Arkusz Stan_Towar_(1...n):

Kod: Zaznacz cały

=JEŻELI(SUMA.JEŻELI(Historia.$K$2:$K31; $B3&"_"&C$2;Historia.$D$2:$D30)-SUMA.JEŻELI(Historia.$J$2:$J31; $B3&"_"&C$2;Historia.$D$2:$D30)=0;"";SUMA.JEŻELI(Historia.$K$2:$K31; $B3&"_"&C$2;Historia.$D$2:$D30)-SUMA.JEŻELI(Historia.$J$2:$J31; $B3&"_"&C$2;Historia.$D$2:$D30))
Jeżeli różnica sum suma.jeżeli[przyjął; przedmiot(1...n) _ oddział(1...n); ilość] - suma.jeżeli[oddał; przedmiot(1...n) _ oddział(1...n); ilość] wyniesie 0 zwróć "" ("" - pustą komórkę tekstową) w przeciwnym wypadku zwróć wartość tej różnicy.
przyjął/oddał - przeszukiwana tablica
przedmiot(1...n) _ oddział(1...n) - szukane wyrażenie
ilość - tablica z wartościami. Elementy spełniające kryterium przeszukiwania są sumowane ze sobą.

W załączniku druga wersja.

Re: Taki prosty magazyn...

: ndz lip 29, 2012 12:35 pm
autor: syzyf37
Witam!

Wszystko działa bardzo dobrze, bardzo dziękuję za pomoc!
Jeszcze taki mały drobiazg...
Jak zrobić "pole wyboru elementów" (nie wiem czy tak się to nazywa)?
Chodzi o to aby np. w kolumnie "Skąd" czy "Dokąd" w arkuszu Historia nie trzeba było za każdym razem wpisywać nazwy, tylko wybrać z rozwijanego menu.
Podobnie jeśli chodzi o kolumnę "Towar"

Jeszcze raz bardzo serdecznie dziękuję za pomoc!

Pozdrawiam

Syzyf37

Re: Taki prosty magazyn...

: ndz lip 29, 2012 4:57 pm
autor: Raknor
Jeśli chodzi o pole listy [Oddział (1...n)] wystarczy, że:

1. Zaznacz w arkuszu Historia komórkę np. E2
2. Dane -> Poprawność danych... -> Karta: Kryteria -> Zezwalaj: Zakres komórek -> Źródło: $Stan_Towar_1.$C$2:$H$2

Jeśli chodzi o listę przedmiotów, to nie mam pomysłu. Aktualnie mogę zasugerować przeniesienie danych z Stan_Towar_(2...n) do Stan_Towar_1 i wykonać, to samo, co w punkcie 2.

Re: Taki prosty magazyn...

: ndz lip 29, 2012 6:46 pm
autor: syzyf37
Witam!

Zrezygnowałem z kilku arkuszy ze stanem towaru na rzecz jednego.
Udało się wykonać definicje w "Poprawność danych" i wykonać pola wyboru dla towaru w Historii.

Dziękuję za pomoc.

Projekt zrealizowany dokładnie tak, jak był zamierzony.

Pozdrawiam

Syzyf37

Re: Taki prosty magazyn...

: ndz lip 29, 2012 9:17 pm
autor: syzyf37
Mam jeszcze taki jeden pomysł... i pytanie.

Załóżmy, że w arkuszu „stan” jest bardzo dużo towarów, można je jednak podzielić np. na trzy kategorie: Kat 1, Kat 2 i Kat 3

W arkuszu „historia” dla ułatwienia wpisywania towarów, w kolumnie C – kategoria towaru i w kolumnie D – nazwa towaru, dostępna jest rozwijana lista wyboru.

Czy jest taka możliwość aby lista wyboru w kolumnie D była zależna od wyboru dokonanego w kolumnie C? Np. jak w kolumnie C wybieram „kat 1” to w polu wyboru w kolumnie D mam dostępne tylko towary przypisane do „kat 1” (kolumny B i C w arkuszu „stan”)

W załączniku dokument z nowymi kolumnami.

Re: Taki prosty magazyn...

: ndz lip 29, 2012 9:37 pm
autor: belstar
Witam
Odpowiedzi na ostatnie pytanie ci nie udzielę, ale mogę zaproponować inne rozwiązanie nad którym teraz się męczę. Zaglądaj tu co jakiś czas, jak skończę to wrzucę.

W żadnym przypadku nie sugeruję że moje rozwiązanie jest lub będzie lepsze, ale co szkodzi spróbować

Cierpliwości
Pozdrawiam

Re: Taki prosty magazyn...

: pn lip 30, 2012 3:29 am
autor: Raknor
W arkuszu Stan utworzyłem dodatkowe kolumny Kat 1, Kat 2, Kat 3 oraz drugą serię kolumn Kat 1, Kat 2, Kat 3 w celu uporządkowania zwracanych wyników z pierwszej serii.

Pierwsza seria Kat 1, Kat 2, Kat 3 zawiera formułę:

Kod: Zaznacz cały

=JEŻELI($B3=L$2;$B3&"_"&LICZ.JEŻELI($B$3:$B3; L$2)&".";"")
W celu przyporządkowania liczby porządkowej w kolumnie Kategoria towaru dla występujących wyrażeń Kat (1...n) w arkuszu Stan.

Druga seria Kat 1, Kat 2, Kat 3 zawiera formułę:

Kod: Zaznacz cały

=JEŻELI(CZY.BRAK(PODAJ.POZYCJĘ(P$2&"_"&$A3; L$3:L36;0));"";INDEKS($C$3:$C$36;PODAJ.POZYCJĘ(P$2&"_"&$A3; L$3:L36;0)))
W celu uporządkowania zwracanych wyników z pierwszej serii na potrzeby utworzenia listy przedmiotów w arkuszu Historia. Stosując "" zwracane jest puste pole tekstowe, które jest uwzględnianie jako pozycja w liście rozwijanej. A porządkując wyniki, przedmioty są na początku listy dla danej kategorii.

Dane -> Poprawność danych... dla przedmiotów, tym razem ma taką formułę:

Kod: Zaznacz cały

JEŻELI($Historia.$C2=$Stan.$P$2;$Stan.$P$3:$P$36;JEŻELI($Historia.$C2=$Stan.$Q$2;$Stan.$Q$3:$Q$36;JEŻELI($Historia.$C2=$Stan.$R$2;$Stan.$R$3:$R$36;"")))
W zależności od sąsiadującego pola Kat (1...n) w arkuszu Historia zwracana jest lista w oparciu o uporządkowane wyniki Kat 1, Kat 2, Kat 3 z arkusza Stan.

UWAGA: Obecne formuły uwzględniają pierwsze 36 wierszy kolumn Kat (1...n) z arkusza Stan. Trzeba sobie zakres zmienić do odpowiednich rozmiarów.

W załączniku plik demonstracyjny.

Re: Taki prosty magazyn...

: wt lip 31, 2012 2:13 am
autor: belstar
Witam
Zgodnie z obietnicą, wrzucam swoje wypociny.
Uwagi mile widziane.
Pozdrawiam