Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Makro - przecietny cykl maszyny

raffaello78 08 Cze 2013 20:16 1338 4
  • #1 08 Cze 2013 20:16
    raffaello78
    Poziom 2  

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    witam,

    jestem nowy w tematyce vba a chcialbym obliczyc sredni miesieczny cykl linii bazujac na cyklach dla poszczegolnych stanowisk pracy generowanych dla kazdej ze zmian (pliki txt). Szukam szybkiego algorytmu ktory w relatywnie krotkim czasie obrobi potezna ilosc danych (50-70 000 rekordow na kazda zmiane -> 200 000 rekordow na dzien -> ponad 6000 000 rekordow za miesiac).

    1. import danych i ich sortowanie (ST1, ST2, ST3,...., MASCH76 -jako oznaczenie cyklu linii)

    2. obliczenie cyklu dla stanowiska (odpowiednio dla linii) dla okreslonego produktu jako 0.3-kwantyl (pod uwage brane tylko te cykle ktorych wartosc miesci sie w zakresie 0.0 - 0.150). Cykle >0.150 nie sa wogole analizowane.

    3. Obliczenie sredneigo miesiecznego cyklu dla stanowiska/ linii jako srednia z wszystkich cykli mierzonych jako 0.3-kwantyl w danym miesiacu dla wszystkich produktow

    4. Obliczenie sredniego miesiecznego cyklu dla stanowiska/ linii jako srednia z wszystkich cykli mierzonych jako 0.3-kwantyl w danym miesiacu dla poszczegolnych produktow (wykaz produktow z miesiaca wraz z opowiednim srednim miesiecznym cyklem)

    w zalaczeniu plik z cyklami dla stanowisk/linii dla zmiany

    20120920140026MASCH_76 056 ST1 1.333

    rok miesiac dzien godzina minuta sekunda Nr_linii(tu: MASCH_76) produkt(tu: 056) staniwsko(tu: ST1) cykl (tu: 1.333)

    pozdrawiam

    0 4
  • #2 08 Cze 2013 21:13
    marcinj12
    Poziom 40  

    No fajnie, ale jakie jest pytanie?? ;) Chyba nie spodziewasz się, że ktoś Ci wrzuci gotowe rozwiązanie, to nie jest makro kolorujące wiersze naprzemiennie. A jeżeli to zlecenie za pieniądze, wypadało by to zaznaczyć.

    Przy takiej ilości rekordów, jeśli chcesz przechowywać i analizować dane przynajmniej za okres jednego miesiąca (a znając życie wkrótce się okaże, że ktoś chciałby zestawienie kwartalne, półroczne czy roczne) jedynym sensownym rozwiązaniem wydaje się zapis tych danych do dobrze zindeksowanej bazy danych (i to raczej jakiejś szybkiej - Access odpada), proponuję darmowego PostgreSQL, dobrze sobie radzi z takimi dużymi bazami danych.

    Jeżeli te dane otrzymujecie codziennie, dobrze by było opracować też jakiś automatyczny loader wrzucający dane do tej bazy.

    Mając dane w bazie - wykorzystać SQL do odpowiednich zapytań, tutaj już mniejsza o język, od biedy np. Excel przez ODBC do Postgresa sobie z tym poradzi, któryś z języków pakietu Visual Studio (C#, VB) czy co tam za język znasz / chcesz poznać.

    Przy takiej ilości danych to NA PEWNO nie jest sensowne zadanie dla Excela i VBA.

    0
  • #3 20 Cze 2013 18:19
    23844
    Użytkownik usunął konto  
  • #4 25 Cze 2013 22:55
    raffaello78
    Poziom 2  

    Code:
    A ty musisz dostawać te dane w tak nieludzkim formacie?


    niestety w takim formacie system generuje dane a nie mam na to wplywu i znajac rzeczywistosc nie dostane danych w formacie csv

    Code:
    Dla tego co przesłałeś użył bym SQLite, ale jak piszesz, że będziesz miał  6000 000 rekordów za miesiąc i rozumiem, że na nich będzie trzeba później coś robić, to zapomnij o SQLite. Raczej wypadało by to zrobić w MS SQL Server lub w Oracle. Szczególnie, że zapewne nie znikną ci nagle te wpisane rekordy z bazy i pewnie po następnym miesiącu dostaniesz kolejnych 6*10^6 rekordów czyli po roku będzie ich 72*10^6.
    
    W Excelu to sobie odpuść takie operacje


    Jesli nie SQLite a MS SQL lub Oracle wymagaja licencji czy polecilbys cos OpenSource? Dodatkowo piszesz ze Excel nie poradzi sobie z taka liczba danych, co zatem bys polecil? Jak zabrac sie do tego?

    0
  • #5 25 Cze 2013 23:51
    23844
    Użytkownik usunął konto