2

次のような一連のセルがあるとします。

    A
1  Foo
2  Bar
3  Hello
4  World
5  Random Text

私がやりたいのは、数式の結果を別のセルに入力することです:

Foo, Bar, Hello, World, Random Text

これで、2 つのセルを次のように連結する方法がわかりました。

=A1&", "&A2

しかし、シリーズ全体で同じことを行うにはどうすればよいですか?

4

3 に答える 3

1

B1で=A1、次に=B1&", "&A2B2 で、コピー ダウンするとうまくいくようです。

于 2013-07-18T19:32:04.073 に答える
1

セル B1 にカンマとスペースを入れて、次の式を使用します。

=CONCATENATE(A1,B1,A2,B1,A3,B1,A4, B1, A5)

次の質問には、VBA オプションや数式など、いくつかの回答を試すことができます。

さまざまな数のセルを連結する必要があります...

于 2013-07-18T18:59:11.073 に答える
1

使えそうな機能をご紹介します。これをワークブック コード モジュールに入れるだけで、次のようにセルに入力できます。

=JoinRange(A1:A6)または=JoinRange(A2:D15)、など

Public Function JoinRange(ByVal rng As Range) As String
    Dim dlmt As String: dlmt = ","
    Dim multiRow As Boolean: multiRow = rng.Rows.Count > 1
    Dim r As Long, c As Long

    Select Case rng.Columns.Count
        Case 1
            If multiRow Then
                JoinRange = Join(Application.WorksheetFunction.Transpose(rng), dlmt)
            Else:
                'a single cell
                JoinRange = rng
            End If
        Case Is > 1
            If multiRow Then
                'a 2d range of cells:
                For r = 1 To rng.Rows.Count
                    For c = 1 To rng.Columns.Count
                        JoinRange = JoinRange & rng(r, c) & dlmt
                    Next
                Next
                JoinRange = Left(JoinRange, Len(JoinRange) - 1)

            Else:
                JoinRange = Join(Application.WorksheetFunction.Transpose( _
                                Application.WorksheetFunction.Transpose(rng)), dlmt)
            End If
        Case Else

     End Select

End Function
于 2013-07-18T19:46:06.683 に答える