Note: The other languages of the website are Google-translated. Back to English

Jak szybko ułożyć wiele kolumn w jednej kolumnie w programie Excel?

w programie Excel funkcja Tekst na kolumny może podzielić komórkę na wiele kolumn na podstawie separatora, ale czy istnieją sposoby na ułożenie wielu kolumn w jedną kolumnę, jak pokazano na zrzucie ekranu? W tym artykule przedstawię kilka trików, jak szybko rozwiązać to zadanie.
doc stos kolumn do jednego 1

Ułóż wiele kolumn w jedną za pomocą formuły

Ułóż wiele kolumn w jedną za pomocą VBA

Stosuj wiele kolumn w jedną za pomocą opcji Zakres transformacji dobry pomysł 3


Ułóż wiele kolumn w jedną za pomocą formuły

1. Wybierz zakres, który chcesz ułożyć, i przejdź do Nazwa Box aby nadać temu zakresowi nazwę, i naciśnij Wchodzę klucz. Zobacz zrzut ekranu:
doc stos kolumn do jednego 2

2. Następnie wybierz pustą komórkę, w której chcesz umieścić wyniki, wprowadź tę formułę =INDEX(MyData,1+INT((ROW(A1)-1)/COLUMNS(MyData)),MOD(ROW(A1)-1+COLUMNS(MyData),COLUMNS(MyData))+1), naciśnij Enter i przeciągnij uchwyt wypełniania w dół, aż pojawi się błąd. Zobacz zrzut ekranu:
doc stos kolumn do jednego 3

W formule MojeDane to nazwa zakresu określona w kroku 1.

Ułóż wiele kolumn w jedną za pomocą VBA

Oto kod VBA, który może Ci również pomóc.

1. naciśnij Alt + F11 klawisze do wyświetlenia Microsoft Visual Basic for Applications okno.

2. kliknij wstawka > Moduł, wklej poniższy kod do pliku Moduł.

VBA: Ustaw kolumny w jeden

Sub ConvertRangeToColumn()
'UpdatebyExtendoffice
Dim Range1 As Range, Range2 As Range, Rng As Range
Dim rowIndex As Integer
xTitleId = "KutoolsforExcel"
Set Range1 = Application.Selection
Set Range1 = Application.InputBox("Source Ranges:", xTitleId, Range1.Address, Type:=8)
Set Range2 = Application.InputBox("Convert to (single cell):", xTitleId, Type:=8)
rowIndex = 0
Application.ScreenUpdating = False
For Each Rng In Range1.Rows
    Rng.Copy
    Range2.Offset(rowIndex, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True
    rowIndex = rowIndex + Rng.Columns.Count
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

doc stos kolumn do jednego 4

3. naciśnij F5 Aby uruchomić kod, pojawi się okno dialogowe, w którym można wybrać dane źródłowe, i kliknij OK, aby wybrać komórkę do umieszczenia wyników. Zobacz zrzut ekranu:
doc stos kolumn do jednego 5

4. kliknij OK. Teraz kolumny zostały ułożone w jednej kolumnie.
doc stos kolumn do jednego 6


Stosuj wiele kolumn w jedną za pomocą opcji Zakres transformacji

Aplikować Kutools dla programu Excel'S Zakres transformacji Narzędzie jest również pomocne w szybkim rozwiązaniu tego problemu.

Kutools dla programu Excel, ponad 300 przydatne funkcje, ułatwiają pracę. 

Po bezpłatna instalacja Kutools dla programu Excel, wykonaj poniższe czynności:

1. Wybierz używane kolumny i kliknij Kutools > Zakres > Zakres transformacji. Zobacz zrzut ekranu:
doc stos kolumn do jednego 8

2. w Zakres transformacji okno dialogowe, sprawdź Zakres do jednej kolumny opcję i kliknij Ok, a następnie wybierz komórkę, w której chcesz umieścić wyniki. Zobacz zrzut ekranu:
doc stos kolumn do jednego 9

3. kliknij OK. Teraz kolumny zostały ułożone w jedną kolumnę.
doc stos kolumn do jednego 1


Najlepsze narzędzia biurowe

Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%

  • Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
  • Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
  • Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
  • Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
  • Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
  • Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
  • Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
  • Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
  • Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 60-dniowa gwarancja zwrotu pieniędzy.
karta kte 201905

Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
officetab dół
Sortuj komentarze według
Komentarze (25)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
układasz wiele wierszy w jedną kolumnę, a nie wiele kolumn... nie to, czego szukałem.
Ten komentarz został zminimalizowany przez moderatora na stronie
Aby ułożyć kolumny AP, które są w blokach po 6 wierszy, umieść te formuły w komórce R1 i wypełnij w dół

=OFFSET($A$1,MOD(ROW()-ROW($R$1),ROWS($A$1:$A$6)),TRUNC((ROW()-ROW($R$1))/ROWS($A$1:$A$6)),1,1)
Ten komentarz został zminimalizowany przez moderatora na stronie
To działa idealnie, dzięki
Ten komentarz został zminimalizowany przez moderatora na stronie
Dziękujemy za opublikowanie tego rozwiązania! Jeśli ktoś potrzebuje spacji po/na końcu każdego bloku, po prostu dodaj dodatkową liczbę do wierszy, więc korzystając z powyższego przykładu, zamiast $A$6, napisz $A$7. Wprowadza zero „0” do wiersza, ale możesz łatwo „Użyj zaznaczenia do wyszukiwania” w Sublime, aby je edytować. Jeśli znasz rozwiązanie, które nie dodaje zera, opublikuj!?
Ten komentarz został zminimalizowany przez moderatora na stronie
aby wyprowadzić pustą komórkę zamiast 0, wykonaj funkcję JEŻELI>0, TRUE-->wyślij oryginalną zawartość komórki, FALSE-->wypisz ""

=if(OFFSET($A$1,MOD(ROW()-ROW($R$1),ROWS($A$1:$A$6)),TRUNC((ROW()-ROW($R$1))/ROWS($A$1:$A$6)),1,1)>0,OFFSET($A$1,MOD(ROW()-ROW($R$1),ROWS($A$1:$A$6)),TRUNC((ROW()-ROW($R$1))/ROWS($A$1:$A$6)),1,1),"")
Ten komentarz został zminimalizowany przez moderatora na stronie
Cholera, teraz to nie działa! Próbowałem na nowej karcie, ale teraz wróciłem do układania zawartości kolumn w jedną zamiast oryginalnej zawartości wierszy.
Ten komentarz został zminimalizowany przez moderatora na stronie
Anuluj ten ostatni, przegapiłem krok obcinania.
Ten komentarz został zminimalizowany przez moderatora na stronie
Wiem, że odpowiedziałeś na to pytanie naprawdę dawno temu, ale czy możesz wyjaśnić, co dokładnie robi każda część tej funkcji?
Ten komentarz został zminimalizowany przez moderatora na stronie
Może ten samouczek może ci pomóc.https://www.extendoffice.com/documents/excel/3327-excel-convert-multiple-rows-to-columns.html
Ten komentarz został zminimalizowany przez moderatora na stronie
to tylko przynęta na kliknięcia, aby pobrać płatne oprogramowanie
Ten komentarz został zminimalizowany przez moderatora na stronie
Pierwsze pobranie będzie dostępne za 60 dni, po czym możesz zdecydować, czy chcesz zapłacić, czy nie.
Ten komentarz został zminimalizowany przez moderatora na stronie
Witam, czy jest jakaś konwersja powyższych danych do poniższego formularza?
1
A
Lilly
2
B
Judy
...
Ten komentarz został zminimalizowany przez moderatora na stronie
Dzięki za pozostawienie wiadomości, ten samouczek https://www.extendoffice.com/documents/excel/5401-excel-stack-columns-into-one-column.html
mówi o tym, jak rozwiązać ten problem, możesz przejść do widoku.
Ten komentarz został zminimalizowany przez moderatora na stronie
Mam dane, które kończą się w tym samym wierszu, ale wiele kolumn, w których chcę, aby były ułożone w sekwencji, w której dane kolumny B przejdą pod dane kolumny A, gdzie dane kończą się dla danych kolumny A i kolumny C, aby przejść do danych kolumny A gdzie kończą się dane z kolumny B i tak dalej. W ten sposób będę miał dane z wielu kolumn, aby zmieściły się w jednej kolumnie. Jak mogę to zrobić?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, czy istnieje sposób, aby formuła ignorowała puste komórki, które mogą zawierać Twoje dane?


=INDEX(MyData,1+INT((ROW(A1)-1)/COLUMNS(MyData)),MOD(ROW(A1)-1+COLUMNS(MyData),COLUMNS(MyData))+1),


Używam arkusza pomocniczego, aby utworzyć ciągłą listę dla rozwijanej listy sprawdzania poprawności danych. Z góry dziękuję.
Ten komentarz został zminimalizowany przez moderatora na stronie
Przepraszam, nie jestem dobry w formule, może możesz spróbować użyć Kutools dla programu Excel's Wybierz niepuste komórki narzędzie, aby najpierw wybrać niepuste komórki, a następnie skopiować i wkleić je w inne miejsce, a następnie użyć powyższych metod.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, zamierzam pójść z tym o krok dalej. Użyłem stosu wielu kolumn w jedną z kodem VBA i to działa. Użyłem tabel jako źródła z tym kodem i otrzymuję listę. Czy istnieje sposób na zautomatyzowanie uruchamiania makra? Więc kiedy dodam nowy wpis do tabeli, makro zostanie automatycznie uruchomione i będzie aktualizować wynikową listę?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, Chris Blackburn, przepraszam, boję się, że nie mogę znaleźć kodu, który może automatycznie uruchomić aktualizację wyniku, może ktoś inny.
Ten komentarz został zminimalizowany przez moderatora na stronie
Próbuję to zrobić na bardzo dużej tabeli (100 kolumn i wierszy, które są połączone z formułami. Mój program Excel będzie się ładował, a następnie ostatecznie przestanie odpowiadać. Czy istnieje sposób, aby to ominąć? Dzięki
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć Tom, która metoda nie działa? Metoda trzecia, narzędzie zakresu transformacji musi działać.
Ten komentarz został zminimalizowany przez moderatora na stronie
Używam metody Stack Multiple Columns Into One With Formula i zadziałało idealnie, ale chcę, aby zachowała formatowanie, tj. Niektóre kolumny były pogrubione, a 1 to hiperłącza. Czy jest coś, co można dodać do formuły, aby tak się stało?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, Susan Milard, ich formuła może zaspokoić Twoje potrzeby, możesz użyć narzędzia VBA lub narzędzia Zakres transpozycji – oba mogą Cię zadowolić.
Ten komentarz został zminimalizowany przez moderatora na stronie
Dziękuję bardzo, opcja formuły działała bardzo dobrze.. zaoszczędziłeś mi dużo czasu.
Ten komentarz został zminimalizowany przez moderatora na stronie
Dziękuję za formułę i VBA, ale żaden z nich nie robi tego, co mówi tytuł posta. Spodziewałem się, że ułożą kolumny, ale zamiast tego transponują każdy wiersz do kolumny i układają je w stos… więc układają transponowane wiersze, a nie kolumny. Nadal bardzo pomocne w niektórych przypadkach, ale czy ktoś wie, jak zmodyfikować formułę i / lub VBA, aby faktycznie ułożyć kolumny? Przypuszczam, że mógłbym transponować cały zakres wejściowy, a następnie użyć tych ...
Ten komentarz został zminimalizowany przez moderatora na stronie
Dla tych, którzy chcą łączyć kolumny w jedną, ale nie wiersze w jedną, musisz mieć jasny obraz tego, co naprawdę chcesz zrobić. Załóżmy, że masz tablicę 3x3 i chcesz, aby funkcja index() pobierała wpisy w postaci (wiersz, kolumna) dla (1,1), (2,1), (3,1), potem (1,2), (2,2), (3,2) i tak dalej. Więc czego chcesz zrobić, to sprawić, aby funkcja index() odnosiła się do pojedynczej kolumny zawierającej wszystkie numery wierszy (1;2;3;1;2;3;1;2;3) i pojedynczej kolumny zawierającej wszystkie numery kolumn (1;1 ;1;2;2;2;3;3;3).Aby uzyskać (1;2;3;1;2;3;1;2;3), powszechnym podejściem programistycznym jest użycie 1+mod(some_counter -1,3) gdzie funkcja mod() daje reszty 0,1,2,0,1,2,...
Aby uzyskać (1;1;1;2;2;2;3;3;3), należy użyć 1+int((some_counter-1)/3) gdzie daje 1+0, 1+0, 1+0 , 1+1, 1+1, 1+1, 1+2, 1+2, 1+2
Dlatego, aby uzyskać tablicę 3x3 skumulowaną w jedną, użyj formuły (naciśnij Ctrl +Shft + Enter):=index( $A$1:$C$3, 1+mod(row(A1)-1,3), 1 +int((row(A1)-1)/3)))gdzie row(A1) służy jako licznik podczas wypełniania formuły w dół
Jeśli ułożysz to odwrotnie (wiersz do kolumn, kolumny do wiersza), otrzymasz wiersze ułożone w jedną kolumnę=INDEX($A$1:$C$3, 1+INT((ROW(A1)-1)/ 3),1+MOD(WIERSZ(A1)-1,3)), czyli dokładnie to, co robi wzór w tym artykule

W skrócie, formuła używana do układania kolumn w tablicy w jedną kolumnę to:=index( twoja_tablica_komórki , 1+mod(row(A1)-1, liczba_wierszów_twojej_tablicy ), 1+int((wier(A1)-1 )/ liczba_kolumn_tablicy)))
Nie ma tu jeszcze żadnych komentarzy
Zostaw swój komentarz
Publikowanie jako gość
×
Oceń ten post:
0   Postacie
Sugerowane lokalizacje

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL