Excel - kolumny do jednej komórki

8

Czy możesz przenieść kolumnę danych do pojedynczej komórki z przecinkami oddzielającymi wartości znajdujące się w kolumnie? Rodzaj odwrotnego tekstu do kolumn.

na przykład,

1
2
3
4
5

aby 1,2,3,4,5w pojedynczej komórce.

Jan
źródło
Czy możesz skopiować kolumnę, przetransponować ją, a następnie wyeksportować jako CSV?
kobaltz

Odpowiedzi:

7

Korzystanie z funkcji zdefiniowanej przez użytkownika będzie znacznie bardziej elastyczne niż kodowanie komórka po komórce

użyj nowej formuły, takiej jak ta w migawce komórki D6
=ConCat(A1:A5)

Możesz użyć bardziej złożonych formuł, takich jak ta w D7
=ConCat(A1:A5,A7:A24)
lub D8, która jest 2D
=concat(A1:B5,A7:A24)

próba

Function ConCat(ParamArray rng1()) As String
    Dim X
    Dim strOut As String
    Dim strDelim As String
    Dim rng As Range
    Dim lngRow As Long
    Dim lngCol As Long
    Dim lngCnt As Long
    strDelim = ", "
    For lngCnt = LBound(rng1) To UBound(rng1)
        If TypeOf rng1(lngCnt) Is Range Then
            If rng1(lngCnt).Cells.Count > 1 Then
                X = rng1(lngCnt).Value2
                For lngRow = 1 To UBound(X, 1)
                    For lngCol = 1 To UBound(X, 2)
                        strOut = strOut & (strDelim & X(lngRow, lngCol))
                    Next
                Next
            Else
                strOut = strOut & (strDelim & rng2.Value)
            End If
        End If
    Next
    ConCat = Right$(strOut, Len(strOut) - Len(strDelim))
End Function
brettdj
źródło
4
  • Po pierwsze, zrób

    =concatenate(A1,",")
    

    w następnej kolumnie obok tej, którą masz wartości.

  • Po drugie, skopiuj całą kolumnę i przejdź do innego arkusza do Wklej specjalnie -> Transponuj.

  • Po trzecie, skopiuj właśnie otrzymaną wartość i otwórz dokument tekstowy, a następnie wybierz Opcje wklejania -> wybierz „A”,
  • Na koniec skopiuj wszystko z dokumentu słownego z powrotem do komórki w arkuszu programu Excel, uzyskasz wszystkie wartości w jednej komórce
Ron
źródło
2

Możesz użyć funkcji konkatenacji i na przemian między komórkami a łańcuchem ",":

=CONCATENATE(A1,",",A2,",",A3,",",A4,",",A5)
shufler
źródło
1

Jeśli jest to dłuższa kolumna wartości, możesz użyć funkcji CONCATENATE, ale wykonanie tego szybko jest trochę trudne. Zakładając, że komórkami były A1: A10, w B9 i B10 umieść te wzory:

B9: = A9 i „,” i B10

B10: = A10

Teraz skopiuj B9 i wklej wszystkie komórki UP na górę kolumny B.

W B1 masz teraz pełny wynik. Kopiuj> Wklej specjalnie> Wartości.

Jerry Beaucaire
źródło
1

Niesamowita odpowiedź, karthikeyan. Nie chciałem tracić czasu na VB ani nawet na ucieczkę z Ctrl + H. To byłoby najprostsze i robię to.

  1. Wstaw nowy wiersz na górze (A).
  2. Tuż powyżej cyfry 1 (tzn. Na A1) wpisz znak równości (=).
  3. Skopiuj / wklej przecinek (,) z B1 do B23 (nie w B24).
  4. Wybierz A1 do B24, skopiuj / wklej w Notatniku.
  5. W Notatniku naciśnij (Wybierz wszystko) Ctrl + A, naciśnij (Kopiuj) Ctrl + C, następnie kliknij wewnątrz pojedynczej komórki w Excelu (F2), a następnie (Wklej) Ctrl + V.
ananthnarain
źródło
1

Notatnik jest najprostszy i najszybszy. Z Excela dodałem kolumnę do uruchamiania liczb w kolumnie A. Moje dane znajdują się w kolumnie B. Następnie skopiowałem kolumnę A i B do notatnika. Usunięto dodatkowe spacje za pomocą funkcji zamiany w notatniku. Skopiowałem z notatnika i wkleiłem z powrotem, aby wyróżnić się w pojedynczej komórce, w której chciałem dane. Wszystko gotowe. Nie wymaga VB!

Kumar-Singapur
źródło
0

Najlepsze i proste rozwiązanie do naśladowania:

Wybierz zakres kolumn, które chcesz skopiować do pojedynczej kolumny

Skopiuj zakres komórek (wiele kolumn)

Otwórz Notepad ++

Wklej wybrany zakres komórek

Naciśnij Ctrl + H, zamień \ t na \ n i kliknij zamień wszystko

wszystkie wiele kolumn należą do jednej pojedynczej kolumny

teraz skopiuj to samo i wklej w programie Excel

Proste i skuteczne rozwiązanie dla tych, którzy nie chcą tracić czasu na kodowanie w VBA

Iam_Karthikeyan
źródło
1
Wygląda na to, że czytasz tylko tytuł. Jeśli przeczytasz całe pytanie i spojrzysz na inne odpowiedzi, zobaczysz, że tak naprawdę nie ma to związku z pytaniem.
fixer1234,
0

Najłatwiejszy sposób na połączenie listy wartości z kolumny w pojedynczą komórkę przy użyciu prostej formuły konkatenacji. 1) Wstaw nową kolumnę 2) Wstaw formułę konkatenacji, używając kolumny, którą chcesz połączyć jako pierwszej wartości, separatora (spacja, przecinek itp.) Jako drugiej wartości oraz komórki pod komórką, w której umieściłeś formułę jako trzeciej wartości wartość. 3) Przeciągnij formułę w dół przez koniec danych w interesującej kolumnie 4) Skopiuj i wklej wartości specjalne w nowo utworzonej kolumnie, aby usunąć formuły, i BOOM! ... wszystkie wartości znajdują się teraz w górnej komórce.

Na przykład poniższa formuła połączy wszystkie wartości wymienione w kolumnie A w komórce C3 z oddzielającym je średnikiem = CONCATENATE (A3, ";", C4)

użytkownik936142
źródło
To duplikuje inne rozwiązania, ale cierpi na pozostawienie dodatkowego separatora na końcu. Odpowiedź Jerry'ego Beaucaire'a sprzed 6 lat jest działającą wersją twojego podejścia.
fixer1234
-1

Oto szybki sposób ... Wstaw kolumnę „,” obok każdej wartości za pomocą wypełnienia. Umieść formułę CONCATE w dowolnym miejscu z wykonanymi obiema kolumnami w zakresie. Wynikiem jest pojedyncza komórka, połączona lista z przecinkami i spacją po każdej z nich.

James
źródło
Nie rozumiem tego, co mówisz - i jeśli ustaliłeś, że jest to zrozumiałe, prawdopodobnie skończyłoby się to na jednej (nie, kilku) już udzielonych odpowiedziach.
Scott
@James Nie mogę uzyskać tej sugestii do działania. W A1: A4 mam 1 2 3 4 (jedna wartość na wiersz). W B1: B4 mam ", ". W C5 mam =concatenate(A1:B4). Jeśli to faktycznie zadziałałoby, byłoby całkiem fajnie, ale nie wydaje się. Czy wyobrażałeś sobie coś jeszcze?
Adam,