Cezary Buras

Cezary Buras Student, Uniwersytet
Ekonomiczny w
Krakowie

Temat: Połączenie dwóch tabeli

Dla przykładu mam 2 tabele:
company DANE A DANE B DANE C
ALFA 242342 46546 5645
BETA 32423432 566 55
GAMMA 24423 566 5556
DELTA 232423 555 777
XYLON 2423334 446 7788

company DANE AW DANE BM DANE CE
ALFA 444 66 88
GAMMA 22 566 7777
DELTA 5555 555 888
XYLON 242 446 0
ZETA 555 555555 555
WWWWW 333 44 0

Z tych dwoch tabeli chcialbym utworzyc trzecia ktora mialaby wygladac mniej wiecej w ten sposob(polaczona 1+2) tam gdzie sa dane chcialbym dodac ta gdzie ich nie ma pozostawic puste miejsca

company DANE A DANE B DANE C DANE AW DANE BM DANE CE
ALFA 242342 46546 5645 444 66 88
BETA 32423432 566 55
GAMMA 24423 566 5556 22 566 7777
DELTA 232423 555 777 5555 555 888
XYLON 2423334 446 7788 242 446 0
ZETA 555 555555 555
WWWWW 333 44 0

Wie ktos moze jak cos podobnego utworzyc ? slyszalem ze da sie to zrobic z tabeli przestawnych(pracuje na excelu07), ale nie moge dogrzebac sie do tej opcji...
Tomasz Gryzio

Tomasz Gryzio Dyrektor
zarządzający/Trener/
Konsultant - It
School

Temat: Połączenie dwóch tabeli

Witam,

Rozwiązanie formułami:

Zakładam, że obie tabele zostały połączone w jedną stojącą w A1:D12 postaci:
Com A B C
ALFA 242342 46546 5645
BETA 32423432 566 55
GAMMA 24423 566 5556
DELTA 232423 555 777
XYLON 2423334 446 7788
ALFA 444 66 88
GAMMA 22 566 7777
DELTA 5555 555 888
XYLON 242 446 0
ZETA 555 555555 555
WWWWW 333 44 0

Teraz nie pozostaje nic innego jak wygenerować (np. w G1:G7) listę unikatowych nazw Company:
Tablicowa formuła wbita do G2 przeciągnięta w dół.

=JEŻELI(ILE.WIERSZY(G$2:G2)>(SUMA.ILOCZYNÓW(--(A2:A12<>"");1/LICZ.JEŻELI(A2:A12;A2:A12&"")));"";INDEKS(A$2:A$12;MIN.K(JEŻELI(CZĘSTOŚĆ(JEŻELI(A$2:A$12<>"";PODAJ.POZYCJĘ(A$2:A$12;A$2:A$12;0));WIERSZ(A$2:A$12)-WIERSZ(A$2)+1);WIERSZ(A$2:A$12)-WIERSZ(A$2)+1);ILE.WIERSZY(G$2:G2))))


Teraz nie pozostaje nic innego jak wygenerować (np. w H2:H7) listę dopasowań:
Tablicowa formuła wbita do H2 przeciągnięta w dół i w prawo.

=JEŻELI.BŁĄD(INDEKS($B$2:$D$12;MIN.K(JEŻELI($G2=$A$2:$A$12;WIERSZ($A$2:$A$12)-1;99^99);ZAOKR.GÓRA(LICZBA.KOLUMN($H2:H2)/3;0));MOD(LICZBA.KOLUMN($H2:H$2)+2;3)+1);"")


Plik: http://pliki.itschool.pl/itstgpolaczeniedwochtabel.xlsx

Pozdrawiam!
Cezary Buras

Cezary Buras Student, Uniwersytet
Ekonomiczny w
Krakowie

Temat: Połączenie dwóch tabeli

Bardzo dziękuję Panu za odpowiedź, a mógłby mi Pan powiedzieć czy nie ma szans tego zrobić tabelą przestawną ? albo czy istnieje jakaś szansa stworzenia z dwóch tabelek jednej tabeli przestawnej ? Na przykład po uprzednim połączeniu tych dwóch tabel w jedną lub najlepiej z dwóch różnych ?
Grzegorz C.

Grzegorz C. Specjalista,
Uniwersytet Śląski

Temat: Połączenie dwóch tabeli

Rozwiązanie przy pomocy MSQuery.
Założenia
- tabela pierwsza znajduje się w arkuszu o nazwie "Arkusz1"
- tabela druga znajduje się w arkuszu o nazwie "Arkusz2"
- nazwy kolumn zgodnie z tym co podałeś
Kwerenda SQL:
SELECT T1.company, T1.`DANE A`, T1.`DANE B`, T1.`DANE C`, T2.`DANE AW`, T2.`DANE BM`, T2.`DANE CE` FROM [Arkusz1$] T1 INNER JOIN [Arkusz2$] T2 ON T1.company = T2.company UNION ALL SELECT T1.company, T1.`DANE A`, T1.`DANE B`, T1.`DANE C`, T2.`DANE AW`, T2.`DANE BM`, T2.`DANE CE` FROM [Arkusz1$] T1 LEFT JOIN [Arkusz2$] T2 ON T1.company = T2.company WHERE T2.company IS NULL UNION ALL SELECT T2.company, T1.`DANE A`, T1.`DANE B`, T1.`DANE C`, T2.`DANE AW`, T2.`DANE BM`, T2.`DANE CE` FROM [Arkusz1$] T1 RIGHT JOIN [Arkusz2$] T2 ON T1.company = T2.company WHERE T1.company IS NULL
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Połączenie dwóch tabeli

Polecam takie dodatki:

Obrazek


lub

Obrazek
Artur D.

Artur D. Solution Architect,
Atos IT Services Sp.
z o.o.

Temat: Połączenie dwóch tabeli

Grzegorz C.:
Kwerenda SQL:

Krok z rozdzieleniem Inner joina i left joina w tym układzie jest zupełnie niepotrzebny

SELECT T1.company, T1.`DANE A`, T1.`DANE B`, T1.`DANE C`,  T2.`DANE AW`, T2.`DANE BM`, T2.`DANE CE` FROM [Arkusz1$] T1 LEFT  JOIN [Arkusz2$] T2 ON T1.company = T2.company UNION ALL  SELECT T2.company, T1.`DANE A`, T1.`DANE B`, T1.`DANE C`, T2.`DANE  AW`, T2.`DANE BM`, T2.`DANE CE` FROM [Arkusz1$] T1 RIGHT JOIN  [Arkusz2$] T2 ON T1.company = T2.company WHERE T1.company IS  NULL

Następna dyskusja:

Grupowanie danych w tabeli ...




Wyślij zaproszenie do