Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

łączenie dwóch arkuszy

1,445 views
Skip to first unread message

LT

unread,
Feb 5, 2009, 7:51:26 AM2/5/09
to
Witajcie;
Proszę o podpowiedź jak najlepiej to zrobić.
Mianowicie mam dwa arkusze, muszę je połączyć po jednej kolumnie. Byłoby to
proste gdyby nie fakt, iż w obu tych arkuszach w kolumnach które chcę
połączyć zakresy danych się nie pokrywają - czyli pewna rzeczy z arkusza A
nie ma w arkuszu B i pewnej ilości rzeczy z arkusza B nie ma w arkuszu A.
Krótko mówiąc - chcę zrobić takiego sql-owego full joina aby po połączneniu
obu arkuszy wynik zawierał dane połączone z arkuszy ale i dane nie połączone
z obu arkuszy...

Dziękuję z góry za pomoc

Pozdrawiam
Łukasz


strach

unread,
Feb 5, 2009, 12:50:59 PM2/5/09
to
LT" <luc...@go2.pl> wrote in message news:gmench$ied$1...@inews.gazeta.pl...

> arkuszu A. Krótko mówiąc - chcę zrobić takiego sql-owego full joina aby

Przychodzą mi do głowy:

1. rozwiązanie manualne: w oddzielnym arkuszu połączyć oba zbiory wartości
klucza z łączonych arkuszy, odsiać duplikaty i VLOOKUPem dobrać do nich
pozostałe kolumny z arkuszy źródłowych posortowanych po kluczu. Opcjonalnie
obsłużyć komunikaty błędów dla kluczy występujących tylko w jednym arkuszu,
jeśli przeszkadzają. Opcjonalnie utrwalić formuły przez Copy > Paste
Special/Values, bo jeśli danych jest dużo, po każdej zmianie arkusz może się
długo przeliczać.

rozwiązania powtarzalne:

2. w całości makrem
lub
3. Przez ADO (sam nie próbowałem):
If the worksheets are in the same workbook I would recommend using ADO
programming to self connect to the workbook, pump the data you need into a
recordset via your outer join sql, and then dump the recordset to a new
sheet.
http://blogs.msdn.com/frice/archive/2004/07/09/178563.aspx


Bądź ambitny i idź w trzecie, byłoby komu wrzucić na grupę pełny krokowy
opis :)

Michal AKA Miki

unread,
Feb 5, 2009, 4:35:56 PM2/5/09
to

Użytkownik "strach" <str...@gazeta.pl> napisał w wiadomości
news:gmf92q$lok$1...@atlantis.news.neostrada.pl...

> LT" <luc...@go2.pl> wrote in message news:gmench$ied$1...@inews.gazeta.pl...
> 3. Przez ADO (sam nie próbowałem):
> If the worksheets are in the same workbook I would recommend using ADO
> programming to self connect to the workbook, pump the data you need into a
> recordset via your outer join sql, and then dump the recordset to a new
> sheet.
> http://blogs.msdn.com/frice/archive/2004/07/09/178563.aspx
>
>
> Bądź ambitny i idź w trzecie, byłoby komu wrzucić na grupę pełny krokowy
> opis :)

Obawiam sie, ze mu sie to nie uda (przynajmniej bez makr do Excela 2003)...
probowalem to recznie zrobic - trzeba uzyc do tego Microsoft Query, rozbilem
sie o komende FULL JOIN - nie przyjmuje... tylko LEFT OUTER...

To rozwiazanie ma jeszcze jeden mankament (moze sie myle, ale na moje oko
tak jest)... mianowicie on bierze do wyliczen ostatnia zapisana wersje
excela, takze jesli dane zmieniaja sie w tabelach, to poprzez query nic z
tego nie bedzie, dopoki nie zapisze zmian...

Pozdrawiam
Michal

Michal AKA Miki

unread,
Feb 5, 2009, 4:48:03 PM2/5/09
to

Użytkownik "LT" <luc...@go2.pl> napisał w wiadomości
news:gmench$ied$1...@inews.gazeta.pl...

Nigdy nie testowalem tego mechanizmu, ale wydaje mi sie, ze moglby sie tu
sprawdzic mechanizm tabel przestawnych z laczeniem danych.
W kreatorze tabel przestawnych zaznacz opcje "Wiele zakresow konsolidacji" a
nastepnie wskaz oba arkusze....

Jesli to nie pomoze, to zostanie tworzenie makra, ewentualnie metody
manualne, takie, jak opisywal kolega.

Pozdrawiam
Michal


strach

unread,
Feb 5, 2009, 5:20:01 PM2/5/09
to
"Michal AKA Miki" <jakista...@z.onetu.pl> wrote in message
news:gmfm3u$qrr$1...@inews.gazeta.pl...

> Obawiam sie, ze mu sie to nie uda (przynajmniej bez makr do Excela
> 2003)... probowalem to recznie zrobic - trzeba uzyc do tego Microsoft
> Query, rozbilem sie o komende FULL JOIN - nie przyjmuje... tylko LEFT
> OUTER...

Może unią: http://support.microsoft.com/kb/136699

> To rozwiazanie ma jeszcze jeden mankament (moze sie myle, ale na moje oko
> tak jest)... mianowicie on bierze do wyliczen ostatnia zapisana wersje
> excela, takze jesli dane zmieniaja sie w tabelach, to poprzez query nic z
> tego nie bedzie, dopoki nie zapisze zmian...

Jeśli dobrze Cię rozumiem, to pewnie wystarczy dodać na początku krok
zapisujący arkusz i ew. ostrzeżenie o tym fakcie z opcją przerwania
operacji - i można się tym nie martwić... no ale Ameryki tu nie odkrywam.

Michal AKA Miki

unread,
Feb 5, 2009, 6:24:23 PM2/5/09
to

Użytkownik "strach" <str...@gazeta.pl> napisał w wiadomości
news:gmfp84$lcm$1...@nemesis.news.neostrada.pl...

> "Michal AKA Miki" <jakista...@z.onetu.pl> wrote in message
> news:gmfm3u$qrr$1...@inews.gazeta.pl...
>> Obawiam sie, ze mu sie to nie uda (przynajmniej bez makr do Excela
>> 2003)... probowalem to recznie zrobic - trzeba uzyc do tego Microsoft
>> Query, rozbilem sie o komende FULL JOIN - nie przyjmuje... tylko LEFT
>> OUTER...
>
> Może unią: http://support.microsoft.com/kb/136699
>

Przynaje sie - bylem leniwy i nie zapytalem kolegi googla :)
Ale dzieki za linka - jednak okazalo sie, ze mialem troche racji :)

Generalnie UNION mozemy zastosowac, tylko wypadaloby wrzucic liste pol, zeby
bylo ladnie :)


>> To rozwiazanie ma jeszcze jeden mankament (moze sie myle, ale na moje oko
>> tak jest)... mianowicie on bierze do wyliczen ostatnia zapisana wersje
>> excela, takze jesli dane zmieniaja sie w tabelach, to poprzez query nic z
>> tego nie bedzie, dopoki nie zapisze zmian...
>
> Jeśli dobrze Cię rozumiem, to pewnie wystarczy dodać na początku krok
> zapisujący arkusz i ew. ostrzeżenie o tym fakcie z opcją przerwania
> operacji - i można się tym nie martwić... no ale Ameryki tu nie odkrywam.
>

Ale tego juz bez VBA nie zrobisz... De facto wystarczy pamietac...

... LT... daj znac, ktora opcja ci sie podoba, jak bedziesz mial problemy,
to wspolnymi silami damy rade :)

Pozdrawiam
Michal

0 new messages