Temat: Jak z obrotówki zrobić stan na dzień?

Witam.
Mam obrotówkę (operacje rozchodów i przychodów na stanach magazynowych). Czyli:
01-01-2009 zakup +2
02-01-2009 sprzedaż -1
03-01-2009 zakup +10
itd. oczywiście dla wielu asortymentów.
Dane z okresu kilku lat. Chcę z tego stworzyć bazę z stanem na dzień (tak aby analizować stany, rotację, poziomy minimalne, punkty zamówień etc. czyli to wszystko co potrzebne w logistyce). Czy ktoś pomoże ???
Jak by co podzielę się wiedzą z logistyki, zarządzania, navision i excel-a.
Z góry dziękuję.

konto usunięte

Temat: Jak z obrotówki zrobić stan na dzień?

Chyba najprościej przesumować to sobie w Excelu i dodać do accessa jako kolejną tabelę. No i oczywiście update'ować co jakiś czas.

Mnogość produktów trochę to utrudnia, ale można sobie pomóc makrem, które przeleci listę "data | produkt | zmiana ilości", zsumuje wszystkie zmiany dla danego produktu i daty i dopisze do innej listy, którą potem wkleimy np. do Accessa (chociaż chyba analizować to też będzie wygodniej w Excelu).

Inna sprawa - czy Excel da sobie radę z taką ilością danych...

Z tym, że do samej obrotówki musisz jeszcze dodać informację o stanie magazynowym z jakiegoś dnia. Że użyję matematycznej analogii - obrotówka to funkcja którą chcesz przecałkować, dostaniesz więc wynik z dokładnością do stałej całkowania. I tą stałą całkowania możesz wywnioskować ze stanu magazynowego z dowolnego dnia.

Ale ponieważ moje rozwiązanie jest dość karkołomne, radzę poczekać na więcej chętnych do pomocy ;)
Marcin Z.

Marcin Z. IT/Business
Intelligence &
Logistics

Temat: Jak z obrotówki zrobić stan na dzień?

Michał, czy jako punkt wyjścia do analizy wynik tej kwerendy jest tym, co chcesz otrzymać?


SELECT Tabela1.Data, Sum(Tabela1.Ilosc) AS StanNaPodanyDzien
FROM Tabela1
WHERE
(([Tabela1]![Artykul] Like "*" & [Podaj Artykul] & "*") AND
(([Tabela1]![Data])<=[Stan na dzien]))
GROUP BY Tabela1.Data
ORDER BY Tabela1.Data;


Przy założeniu, że tabela składa się z pól: Data, Artykul, Operacja, Ilosc.

Temat: Jak z obrotówki zrobić stan na dzień?

Dziękuję za pomoc ale.....
1. Ilość wpisów to ok 400 000 (czyli Excel odpada)
2. Mam obrotówkę (czyli ruchy na asortymencie) a chcę stan na dzień ale nie na konkretny ale na wszystkie dni aby otrzymać np. wykres stanów w czasie czyli.
Obroty (mam)
nakrętka 01-01-2009 +12
nakrętka 02-01-2009 -1
nakrętka 03-01-2009 +4
nakrętka 05-01-2009 -10
Stany (potrzebuję)
nakrętka 01-01-2009 12
nakrętka 01-01-2009 11
nakrętka 01-01-2009 15
nakrętka 01-01-2009 15 (uwaga - wpis stanu pomimo braku obrotu)
nakrętka 01-01-2009 5

Dziękuję za chęci. Proszę o dalsze wskazówki

Temat: Jak z obrotówki zrobić stan na dzień?

Radosław Dominiak:
Chyba najprościej przesumować to sobie w Excelu i dodać do accessa jako kolejną tabelę. No i oczywiście update'ować co jakiś czas.

Mnogość produktów trochę to utrudnia, ale można sobie pomóc makrem, które przeleci listę "data | produkt | zmiana ilości", zsumuje wszystkie zmiany dla danego produktu i daty i dopisze do innej listy, którą potem wkleimy np. do Accessa (chociaż chyba analizować to też będzie wygodniej w Excelu).

Inna sprawa - czy Excel da sobie radę z taką ilością danych...

Z tym, że do samej obrotówki musisz jeszcze dodać informację o stanie magazynowym z jakiegoś dnia. Że użyję matematycznej analogii - obrotówka to funkcja którą chcesz przecałkować, dostaniesz więc wynik z dokładnością do stałej całkowania. I tą stałą całkowania możesz wywnioskować ze stanu magazynowego z dowolnego dnia.

Ale ponieważ moje rozwiązanie jest dość karkołomne, radzę poczekać na więcej chętnych do pomocy ;)

Dzięki za info. To o czym piszesz da się zrobić kwerendą krzyżową w Access. Ponieważ otwarciem obrotówki jest bilans otwarcia mam stan otwarcia. Należy zsumować obroty z warunkiem daty (np. =<01-01-2009 i mamy stan na 01-01-2009). Ale problem w tym że chcę stan w czasie (czyli wszystkie daty z stanem). Dzięki

konto usunięte

Temat: Jak z obrotówki zrobić stan na dzień?

usuń plus z liczb, przekonwertuj do typu liczbowego
i skorzystaj z czegoś takiego jak suma bieżąca

http://office.microsoft.com/pl-pl/access/HA10120854104...

działa to tak ze sumuje wszystkie elementy od początku wybranego okresu, jak masz wartości ujemne to doda ujemną czyli odejmie od sumy z dnia poprzedniego

konto usunięte

Temat: Jak z obrotówki zrobić stan na dzień?

A czy ta suma bieżąca nie działa tylko w raportach i tylko w Excelu 2007? Niby jest to jakieś rozwiązanie, ale chyba lepiej byłoby gdyby wyniki były w tabeli/kwerendzie, żeby się je dało analizować, a nie tylko oglądać.

Oczywiście kwerenda sumująca z zadanym przedziałem czasowym da to
o co chodzi, ale dla jednego dnia, więc nawet nie proponowałem takiego rozwiązania ;)

BTW, nowy Excel poradzi sobie z 400k wierszy ;)Radosław Dominiak edytował(a) ten post dnia 30.05.09 o godzinie 19:56

konto usunięte

Temat: Jak z obrotówki zrobić stan na dzień?

suma bieżąca jest jedną z możliwości prezentacji danych w tabeli przestawnej Excel-a 2002 i 2003

jeżeli chcemy zrobić to dla wielu elementów w okresie wielu dni to da się to zrobić w Acces-e tyle że wymaga to małego hokuspokus w wykorzystaniem funkcji DSum

pomocna była by też tabela z daniami w wybranym przedziale czasowym, jak widać w przykładowych danych są dziury

powiedzmy że taka konstrukcja maksymalnie ułatwi sprawę

konto usunięte

Temat: Jak z obrotówki zrobić stan na dzień?

SELECT d.data, E.towar, DSum("[wart]","[tab_obrot]","[data]<= #" & CStr(d.data) & "# AND [towar]='" & e.towar & "'") AS Suma
FROM tab_data AS d, q_towar AS E;


w takiej konstrukcji musimy wykorzystać iloczyn kartezjański zbioru dat i zbioru kategorii towarów żeby osiągnąć wynik bez dziur w dniach bez akcji

kwerenda q_towar to nazwy kategorii
tabela tab_data to tabela z datami w przedziale czasowym
tabela tab_obrot - to tabela z danymi i założyłem że będzie miała kolumny: [wart] - wartość operacji danego dnia, [towar] - kategoria towaru i [data] - data operacjiPrzemysław R. edytował(a) ten post dnia 30.05.09 o godzinie 21:52
Piotr Kaliński

Piotr Kaliński ETL consultant

Temat: Jak z obrotówki zrobić stan na dzień?

mozesz tez sprobowac podzapytaniem w selecie.
wygladaloby ono tak:

select kartezjan.data, kartezjan.nazwa_towaru,
( select sum (obrot_ilosc)
from obrotowka o
where o.nazwa_towaru = kartezjan.nazwa_towaru
and o.data_obrotu <= kartezjan.data
) stan_na_dzien
from
( select r.data, t.nazwa_towaru
from slownik_dat d,
slownik_towarow t
) kartezjan

Zmartwie Cie jednak, ze 400 000 wierszy przy takim zapytaniu bedzie sie mielic i mielic i mielic...
W prawdziwych systemach transakcyjnych ten problem rozwiazuje sie w ten sposob, ze kazdy wpis w dzienniku transakcji zawiera nie tylko date transakcji, nazwe towaru i ilosc o jaka zmienil sie stan, ale takze stan po transakcji. Jesli system przelicza to na bierzaco, to znacznie latwiej mozesz ustalic jaki byl stan na dowolny dzien.

konto usunięte

Temat: Jak z obrotówki zrobić stan na dzień?

z tymi podzapytaniami w Accessie to lepiej uważać
jak się coś takiego zrobi a później chce poprawić w QBE to może być niezły ZONK

pomysł jest jak najbardziej OK :)

Temat: Jak z obrotówki zrobić stan na dzień?

Piotr Kaliński:
mozesz tez sprobowac podzapytaniem w selecie.
wygladaloby ono tak:

select kartezjan.data, kartezjan.nazwa_towaru,
( select sum (obrot_ilosc)
from obrotowka o
where o.nazwa_towaru = kartezjan.nazwa_towaru
and o.data_obrotu <= kartezjan.data
> ) stan_na_dzien
from
( select r.data, t.nazwa_towaru
from slownik_dat d,
slownik_towarow t
) kartezjan

Zmartwie Cie jednak, ze 400 000 wierszy przy takim zapytaniu bedzie sie mielic i mielic i mielic...
W prawdziwych systemach transakcyjnych ten problem rozwiazuje sie w ten sposob, ze kazdy wpis w dzienniku transakcji zawiera nie tylko date transakcji, nazwe towaru i ilosc o jaka zmienil sie stan, ale takze stan po transakcji. Jesli system przelicza to na bierzaco, to znacznie latwiej mozesz ustalic jaki byl stan na dowolny dzien.

Dzięki
No to może zacznę od dokładnego przeszukania tabel obrotów w Navision (bądź tabeli "pokrewnych"). Bo jak widzę temat nie jest taki prosty.



Wyślij zaproszenie do