Zobacz pełną wersję : potrzebna pomoc - EXCEL
Cześć,
potrzebuję pomocy w programie excel.
Sprawa wygląda tak: importuje do arkusza dane z plików tekstowych typu *.csv. W każdym pliku są wiersze z dwiema danymi. Większość plików ma tę samą wartość pierwszego wiersza, ale czasami zmieniają się one. Po imporcie wygląda to tak:
https://forum.nikoniarze.pl//brak.gif
źródło (http://img20.imageshack.us/img20/3808/przechwytywaniese.jpg) -> w kolumnach z literkami brakuje niektórych wierszy, np. w pierwszej kolumnie brakuje pozycji HHH, LLL, MMM i wartości dla tych pozycji, a w trzeciej kolumnie brakuje wierszy BBB, JJJ, MMM i też wartości dla tych kolumn.
Co można zrobić, żeby uzyskać taki efekt:
https://forum.nikoniarze.pl//brak.gif
źródło (http://img214.imageshack.us/img214/9223/przechwytywanie2s.jpg) tzn, żeby dane były uporządkowane.
Danych są setki czy tysiące, więc ręczne porządkowanie nie wchodzi w grę, a na VBA zupełnie się nie znam.
BARDZO, BARDZO, BARDZO proszę o pomoc:) jak coś stawiam flaszkę:)
RobertMiernik
06-05-2012, 14:26
Nie będzie to proste, nie łatwiej wydzielić te z A których nie ma w C i z C te, których nie ma w A a potem wstawić je gdzieś niżej?
Takie coś by się dało prosto i szybko zrobić.
To co Ty chcesz zrobić to odrobina kodowania w VBA:
W skrócie, dla każdego B sprawdzasz czy się równa A jeśli tak nic nie robisz, jeśli nie i do tego występuje gdziekolwiek w A to w B i D wstawiasz puste komórki z przesunięciem w dół, jeśli nie występuje w A to wstawiasz z przesunięciem w dół komórki w A i B.
Chyba nic nie pominąłem?...
Nie będzie to proste, nie łatwiej wydzielić te z A których nie ma w C i z C te, których nie ma w A a potem wstawić je gdzieś niżej?
Takie coś by się dało prosto i szybko zrobić.
tyle tylko, że takich par kolumn jak A+B oraz C+D, tj. par kolumn zawierających literki i wartości są setki:(
Jezeli dane w CSV nie sa turbotajne i mozesz sie nimi podzielic to moge sprobowac cos z tym zrobic.
RobertMiernik
06-05-2012, 15:25
AA jeśli tak kto ciut kupa, a wszystkie kolumny ze wszystkimi trzeba sprawdzać?
A A A A A
B B ? B B ?
C ? C C ? ?
??
A nie wystarczy wyszukaj pionowo?
Zaimportuj każdy plik do osobnego arkusza. Utwórz nowy arkusz ze wszystkimi możliwymi wartościami AAA, BBB... (skopiuj pod sobą wszystkie pierwsze kolumny i usuń duplikaty)
W kolejnych kolumnach użyj funkcji wyszukaj.pionowo.
Zakładam, że wartości AAA, BBB nie powtarzają się.
A nie wystarczy wyszukaj pionowo?
Zaimportuj każdy plik do osobnego arkusza. Utwórz nowy arkusz ze wszystkimi możliwymi wartościami AAA, BBB... (skopiuj pod sobą wszystkie pierwsze kolumny i usuń duplikaty)
W kolejnych kolumnach użyj funkcji wyszukaj.pionowo.
Zakładam, że wartości AAA, BBB nie powtarzają się.
tylko chodzi o to, że dostępnych wierszy jest około ~600 i codziennie przybywają nowe kolumny z wartościami. proces musi być maksymalnie zautomatyzowany...
kurcze walczę z różnymi kodami VBA znalezionymi w sieci, ale nic nie działa:(
RobertMiernik
06-05-2012, 15:59
Jeśli to ma być maksymalnie automatyczne to darowałbym sobie całkiem excela i zrobił to na jakiejś darmowej bazie danych.
Po załadowaniu wszystkich plików do jednej tabel(i) spokojnie możesz sobie filtrować co Ci pasuje i odpalając jeden skrypt masz gotowe rezultaty, bez importu X plików do excela i dalszych magicznych sztuczek..
tylko chodzi o to, że dostępnych wierszy jest około ~600 i codziennie przybywają nowe kolumny z wartościami. proces musi być maksymalnie zautomatyzowany...(
Co to jest 600 wierszy?
Dodanie nowej kolumny to kilka kliknięć. W zupełności wystarczy do tego excel. Na siłę można napisać makro (a newet nagrać).
niestety musi być excel, bo potem na tych danych będą dokonywane matematyczne obliczenia, przekształcenia, działania na macierzach itp, a to są rzeczy już typowo excelowe
Ja tez mysle, ze nawet Access bylby lepszy niz Excel... bo teraz probowalem to ugryzc i niestety srednio mi poszlo... :cry:
Krzychu, a nie mozesz potem kopiowac danych z bazy do excela i na tym dzialac?
Ja tez mysle, ze nawet Access bylby lepszy niz Excel... bo teraz probowalem to ugryzc i niestety srednio mi poszlo... :cry:
Krzychu, a nie mozesz potem kopiowac danych z bazy do excela i na tym dzialac?
kurcze, no może i można, tylko jest to takie połowiczne rozwiązanie, bo:
1. pierwszy problem, że nie mam accessa, a nawet jak go zakupię, to pytanie, czy taki program ogarnie to co potrzebuję osiągnąć
2. zakładając że pierwszy warunek spełniony, to czy przy kopiowaniu nie będą się rozjeżdżać jakieś komórki, formatowanie komórek itp.
docelowo to niestety musi wyglądać tak, że po załadowaniu nowych danych, albo excel sam porządkuje te kolumny, albo robi to jakieś makro VBA. niestety warunek narzucony jest taki, że cały proces musi być maksymalnie zautomatyzowany.
Sprawdź taki plik (http://www.top67.pl/Nikon/Zeszyt1.xls)
W pierwszym arkuszu masz sumę. Do kolejnych zaimportuj dane. Jak dołożysz więcej wierszy, to po prostu skopiuj formułę (Ctrl-D).
Jak dołożysz kolejne arkusze, to skopiuj formułę w prawo (Ctlr-R). Nazwę arkusza wpisz w pierwszym wierszu nowej kolumny. (poprawiłem plik).
Nie chce mi się dopisywać sprawdzania #N/D można to ręcznie wykasować.
Ponieważ nie znamy ilości wierszy, to wpisałem zakres obejmujący całe kolumny "A:B", w nowych office wymusza to przeszukiwanie 16 mln par, co może spowalniać pracę. Można wpisać ograniczony zakres, lub po zaimportowaniu zamienić funkcję na wartości.
Sprawdź taki plik (http://www.top67.pl/Nikon/Zeszyt1.xls)
W pierwszym arkuszu masz sumę. Do kolejnych zaimportuj dane. Jak dołożysz więcej wierszy, to po prostu skopiuj formułę (Ctrl-D).
Jak dołożysz kolejne arkusze, to skopiuj formułę w prawo (Ctlr-R) i podmień w niej nazwę arkusza.
Nie chce mi się dopisywać sprawdzania #N/D można to ręcznie wykasować
zaczyna trzymać się kupy:)
potrzebna chyba jest jeszcze jedna zmiana, tzn. np w pomiarze nr 5 może pojawić się wiersz między AAA i BBB, którego nie było w zakładce suma, tzn i co wtedy? jak to uwzględnić, żaby excel sam dopisał taką wartość w zakładce suma?
ręcznie: skopiuj całą kolumnę A z nowego arkusza pod ostatnim wierszem arkusza "suma". Użyj funkcji "usuń duplikaty".
o kurcze, chyba faktycznie działa tak jak chciałem:)
maciey75
06-05-2012, 20:59
#N/D mozna latwo zlikwidowac poprawiajac formulke: =JEŻELI.BŁĄD(WYSZUKAJ.PIONOWO($A5;ADR.POŚR(B$1&"!$A:$B");2;0);"brak danej")
Ja tez mysle, ze nawet Access bylby lepszy niz Excel... bo teraz probowalem to ugryzc i niestety srednio mi poszlo... :cry:
Krzychu, a nie mozesz potem kopiowac danych z bazy do excela i na tym dzialac?
Można też napisać mały program w Delphi, robiłem takie manipulacje na arkuszach. ;)
niestety musi być excel, bo potem na tych danych będą dokonywane matematyczne obliczenia, przekształcenia, działania na macierzach itp, a to są rzeczy już typowo excelowe
Zaryzykowałbym stwierdzenie, że to rzeczy typowo matlabowe, więc można spróbować darmowego SCILABA - używam w pracy do tego typu spraw i jest ok. Nawet jeżeli obrabiać wszystko chcesz w excelu, a problem jest tylko z dobrym wczytaniem danych, to scilab da radę.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.