logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Excel – jak połączyć nazwy z wiersza 1, gdzie w wierszu 2 jest X, oddzielone przecinkiem

dominikzw 29 Sie 2025 13:42 657 36
Najlepsze odpowiedzi

Jak w Excelu połączyć nazwy z pierwszego wiersza, dla których w drugim wierszu jest „X”, oddzielając je przecinkami, najlepiej w jednej komórce?

W Excelu 2019 lub nowszym najprościej zrobić to w dwóch krokach: w wierszu pomocniczym wpisz `=JEŻELI(B2="X";B1;"")` i przeciągnij formułę w prawo, a w komórce wyniku użyj `=POŁĄCZ.TEKSTY(",";PRAWDA;B3:K3)` (czyli odpowiedniego zakresu pomocniczego), bo ta funkcja ignoruje puste komórki [#21647830] [#21647908] [#21648106] Jeśli chcesz objąć więcej kolumn, po prostu rozszerz zakres w obu formułach, np. z `B3:K3` na `B3:N3` itd. [#21648005] W starszych wersjach Excela funkcja `POŁĄCZ.TEKSTY` może nie być dostępna, więc wtedy pozostaje VBA albo bardziej rozbudowana formuła bez tej funkcji [#21647821] [#21648106]
Wygenerowane przez model językowy.
REKLAMA
  • #1 21647792
    dominikzw
    Poziom 17  
    Posty: 442
    Ocena: 32
    Witam
    Potrzebuje Waszej pomocy w Excelu.
    Mam tabele gdzie w wierszu pierwszym jest 1,2,3,4. Poniżej wartość X albo puste.
    Czy jest jakas formuła ktora w komórce A2 wypisze mi wszystkie nazwy po przecinku z wiesza pierwszego ktore zawierają w wierszu drugim X.
    tak jak wpisałem to z ręki w komorce a2.

    dziękuję za pomoc
    Załączniki:
    • Zeszyt1.xlsx (8.45 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 21647821
    data_cube
    Poziom 5  
    Posty: 9
    Jeśli trzeba w jednym kroku, to w VBA.
    Jeśli trzeba szybko i w dwóch krokach, to w dolnym wierszu wyświetlić nazwy za pomocą IF, a potem połączyć je przecinkiem za pomocą TEXTJOIN.
  • #3 21647826
    dominikzw
    Poziom 17  
    Posty: 442
    Ocena: 32
    Byłaby możliwość żebyś rozpisał to z pomoca licz jeżeli oraz polacz teksty? bo nie bardzo wiem jak oba połączyć
    dziękuję
  • #4 21647830
    data_cube
    Poziom 5  
    Posty: 9
    W komórce B3 wpisujesz formułę =IF(B2="X",B1,"") i przeciągasz ją w prawo.
    W A3 wpisujesz =TEXTJOIN(",",,B3:K10).
    Po polsku JEŻELI i ZŁĄCZ.TEKSTY?
  • #5 21647894
    dominikzw
    Poziom 17  
    Posty: 442
    Ocena: 32
    Licz jezeli działa, a jak wpisuje złącz.teksty to wyskakuje błąd:
    =ZŁĄCZ.TEKSTY(",";B3:K3)

    wersja excela może mieć znaczenie???
    Załączniki:
    • Zeszyt1.xlsx (9.66 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #6 21647908
    data_cube
    Poziom 5  
    Posty: 9
    >>21647894
    Dodaj średnik =ZŁĄCZ.TEKSTY(",";;B3:K3), czyli =ZŁĄCZ.TEKSTY(",";PRAWDA;B3:K3).
  • #7 21647912
    dominikzw
    Poziom 17  
    Posty: 442
    Ocena: 32
    Skopiowałem jak wyżej napisałeś i nic.
    Załączniki:
    • Zeszyt1.xlsx (9.68 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #8 21647944
    dt1
    Admin grupy komputery
    Posty: 48129
    Pomógł: 7290
    Ocena: 8239
    Mało eleganckie, ale skuteczne rozwiązanie, spróbuj do A2 czy innej komórki wkleić to:

    =JEŻELI(LICZ.JEŻELI(B2:K2;"X")>0;PODSTAW(ZŁĄCZ.TEKSTY(JEŻELI((B2)="X";ZŁĄCZ.TEKSTY(B1;",");"");JEŻELI((C2)="X";ZŁĄCZ.TEKSTY(C1;",");"");JEŻELI((D2)="X";ZŁĄCZ.TEKSTY(D1;",");"");JEŻELI((E2)="X";ZŁĄCZ.TEKSTY(E1;",");"");JEŻELI((F2)="X";ZŁĄCZ.TEKSTY(F1;",");"");JEŻELI((G2)="X";ZŁĄCZ.TEKSTY(G1;",");"");JEŻELI((H2)="X";ZŁĄCZ.TEKSTY(H1;",");"");JEŻELI((I2)="X";ZŁĄCZ.TEKSTY(I1;",");"");JEŻELI((J2)="X";ZŁĄCZ.TEKSTY(J1;",");"");JEŻELI((K2)="X";ZŁĄCZ.TEKSTY(K1;",");""));",";"";LICZ.JEŻELI(B2:K2;"X"));"")


    Formuła jest zabezpieczona przed zerową ilością zaznaczeń (jeśli nie ma żadnego X'a to komórka jest pusta). Pewnie w nowszych wersjach Excela są dostępne funkcje, które mogą uprościć tę formułę, ale przestałem korzystać z Excela na wersji 2003 i tam są dostępne takie. Oczywiście na nowszych Excelach też będzie to działać.
  • #9 21647950
    dominikzw
    Poziom 17  
    Posty: 442
    Ocena: 32
    dziękuje, nie musi być elegancko, ważne żeby działało, mam nadzieje że zadziała dla około 30 pozycji w jednym wierszu
  • #10 21647951
    data_cube
    Poziom 5  
    Posty: 9
    >>21647912
    U ciebie jest CONCATENATE, a ja proponuję zrobić to przez TEXTJOIN.
    Załączniki:
    • Zeszyt1.xlsx (10.2 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #11 21647953
    dt1
    Admin grupy komputery
    Posty: 48129
    Pomógł: 7290
    Ocena: 8239
    Jak sobie rozszerzysz tę formułę do 30 pozycji to zadziała, ale przy zwiększonej liczbie pozycji staje się ona coraz bardziej niepraktyczna w stosowaniu i makro mogłoby być wygodniejsze.

    Ta przykładowa powyżej jest rozpisana na dokładnie 10 pozycji, które podałeś w swoim przykładzie.
  • #12 21647958
    dominikzw
    Poziom 17  
    Posty: 442
    Ocena: 32
    Nie wiem na ile potrzebuje bo nie pamiętam ile mam kolumn, te 10 to rzuciłem przykład.
    A jak zrobić żeby działało za pomocą TEXTJOIN bo próbuje i lipa
  • #13 21647963
    data_cube
    Poziom 5  
    Posty: 9
    >>21647958 Dodałem plik do poprzedniej odpowiedzi.
  • #14 21647966
    dominikzw
    Poziom 17  
    Posty: 442
    Ocena: 32
    dziekuje widzę, to teraz zagadka co mam zrobić żeby zwiększyć ilość kolumn ??? bo zwiększam np. do 13 i dodaje licz jeżeli i w komórce A3 zmieniam zakres to error...
    Załączniki:
    • Zeszyt1.xlsx (9.89 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #16 21648005
    data_cube
    Poziom 5  
    Posty: 9
    >>21647966
    Zamiast B3:K3 wpisujesz taki zakres, jaki ci jest potrzebny: B3:N3, B3:XFD3.
  • #17 21648022
    dominikzw
    Poziom 17  
    Posty: 442
    Ocena: 32
    >>21648005 No właśnie tak robię i jak zamiast B3:K3 zmieniam np. na B3:M3 to wyskakuje error.- błąd nie prawidłowa nazwa
    Arkusz Excela z błędem #NAZWA? w komórce A3 przy użyciu formuły TEXTJOIN z zakresem B3:M3
  • #18 21648033
    PRL
    Poziom 41  
    Posty: 6890
    Pomógł: 953
    Ocena: 892
    W załączniku.
    Załączniki:
    • X.zip (11.95 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    Pomogłem? Kup mi kawę.
  • #19 21648106
    Maciej Gonet
    Specjalista - VBA, Excel
    Posty: 2207
    Pomógł: 824
    Ocena: 481
    TEXTJOIN to jest po polsku POŁĄCZ.TEKSTY i ta funkcja jest dostępna od wersji 2019. Jeśli masz starszą wersję Excela, to preferowane jest rozwiązanie za pomocą VBA.
    Zawsze przy tego rodzaju pytaniach należy podawać wersję Excela, żeby uniknąć niespodzianek z niedostępnością funkcji. Jeśli ktoś nie podaje wersji programu, to można sądzić, że ma najnowszą.
  • #20 21648120
    dominikzw
    Poziom 17  
    Posty: 442
    Ocena: 32
    Rozumiem teraz, dziekuje za pomoc
  • #21 21651264
    data_cube
    Poziom 5  
    Posty: 9
    >>21648022
    Po prostu robisz błędy w formule — przed formułą masz jakieś zbędne znaki.
  • REKLAMA
  • #22 21651624
    Maciej Gonet
    Specjalista - VBA, Excel
    Posty: 2207
    Pomógł: 824
    Ocena: 481
    "+" na początku jest tu zbędny, ale nie przeszkadza, natomiast dalszy przedrostek "_xlfn." przed angielską nazwą funkcji jest dodawany przez program Excel, gdy skoroszyt został zapisany w nowszej wersji Excela, a później próbuje się go uruchomić w starszej wersji, która nie obsługuje tej funkcji.
    Ten wygląd ekranu pochodzi od Excela, użytkownik nic w nim nie zmieniał.
  • #23 21652941
    dominikzw
    Poziom 17  
    Posty: 442
    Ocena: 32
    Witam
    A czy można poprawić coś w kodzie zeby działało dla następnych wierszy??

    dziękuję
    Załączniki:
    • X.zip (12.8 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #25 21653038
    dominikzw
    Poziom 17  
    Posty: 442
    Ocena: 32
    Chyba coś jest nie tak albo coś źle robie.
    Skopiowalem ten caly scrypt i wkleilem w miejsce poprzedniego, wyłączyłem i nie dziala
  • #27 21653067
    dominikzw
    Poziom 17  
    Posty: 442
    Ocena: 32
    Dziękuję ale nie oto mi chodziło żeby zmieniać.
    Chodzi mi żeby było tak jak w wierszu 2, czyli zeby samo od razu wypluwalo w komorce a2. zeby było identycznie w wierszu 3,4 itd bez zadnych przycisków . Jest taka możliwość?? dziękuję
    Załączniki:
    • Xa.zip (12.8 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #28 21653077
    Maciej Gonet
    Specjalista - VBA, Excel
    Posty: 2207
    Pomógł: 824
    Ocena: 481
    @dominikzw: Jaki masz układ danych? Twojego pliku przykładowego nie da się pobrać.
    Edit: Widzę, że jest nowy załącznik. Przed chwilą go jeszcze nie było.
    @PRL:W Twoim kodzie brakuje resetu zmiennej a przed przetworzeniem kolejnego wiersza. Poza tym (ze względów dydaktycznych) warto by było deklarować zmienne.
  • #29 21653083
    PRL
    Poziom 41  
    Posty: 6890
    Pomógł: 953
    Ocena: 892
    Proszę.

    Cytat:
    deklarować zmienne


    Kwestia przyzwyczajenia. :)
    W krótkim kodzie nie używam.
    Załączniki:
    • X.zip (11.42 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    Pomogłem? Kup mi kawę.
  • #30 21653113
    dominikzw
    Poziom 17  
    Posty: 442
    Ocena: 32
    dziękuję oto chodziło
    widzę ze działa do kolumny K i wiersza 8. Co muszę zrobić zeby na więcej wierszy i dalsze kolumny rozszerzyc??

    dziękuję

Podsumowanie tematu

✨ Dyskusja dotyczy sposobu łączenia w Excelu nazw z pierwszego wiersza, które odpowiadają komórkom z wartością "X" w drugim wierszu, w jedną listę oddzieloną przecinkami. Proponowane rozwiązania obejmują użycie formuł takich jak JEŻELI (IF) w połączeniu z funkcją ZŁĄCZ.TEKSTY (TEXTJOIN) do filtrowania i łączenia wartości. W przypadku starszych wersji Excela, które nie obsługują funkcji ZŁĄCZ.TEKSTY (dostępnej od wersji 2019), rekomendowane jest zastosowanie makra VBA, które iteruje po zakresie i zbiera odpowiednie nazwy. Problemy pojawiały się przy rozszerzaniu zakresów oraz błędach składniowych, m.in. związanych z użyciem średników i wersją Excela. Wskazano, że funkcja TEXTJOIN może być niedostępna w starszych wersjach, co powoduje błędy i konieczność stosowania alternatywnych metod. Przykładowy kod VBA został udostępniony jako skuteczne i elastyczne rozwiązanie dla większej liczby kolumn. Podkreślono również, że przy otwieraniu skoroszytów w starszych wersjach Excela mogą pojawiać się prefiksy _xlfn. przy funkcjach nieobsługiwanych w danej wersji.
Wygenerowane przez model językowy.
REKLAMA