Excelチュートリアル:列、行、セルを結合する
列、行、またはセルを結合することは、通常、私たちの日常のExcel業務で使用されます。例えば、2つの列にある名前と姓を1つの列に結合してフルネームを得ること、同じIDに基づいて行を結合し対応する値を合計すること、セルの範囲を1つのセルに結合することなどです。このチュートリアルでは、Excelでの列/行/セルの結合に関するすべてのシナリオをリストアップし、それぞれ異なる解決策を提供します。
このチュートリアルのナビゲーション |
1 列/行を1つのセルに結合する1.1 列や行をスペース、カンマ、またはその他の区切り文字で1つのセルに結合する 1.12 CONCATENATE関数の使用 (Excel 2016またはそれ以前のバージョン) |
2. 同じIDを持つ行を結合する |
3. セルの結合3.12 CONCATENATE関数の使用 (Excel 2016またはそれ以前のバージョン) |
このチュートリアルでは、いくつかの例を作成して方法を説明します。以下のVBAコードや数式を使用する際には、必要に応じて参照を変更できます。また、サンプルをダウンロードして直接試すこともできます。
1 列/行を1つのセルに結合する
列または行を1つのセルに結合し、結果をカンマ、スペース、またはその他の区切り文字で分ける操作は、下のスクリーンショットに示すように、Excelで最も広く使用されています。
列を1つのセルに結合する |
![]() |
行を1つのセルに結合する |
![]() |
Excelでは、アンパサンド記号 & は通常、テキストを結合するために使用されます。
例:名(列A)と姓(列B)をフルネームに結合する
結合結果を配置したいセルを選択し、次のような数式を入力します:
=A2&" "&B2
数式では、& はテキストを結合するために使用され、A2 と B2 は結合する必要がある2つのテキストです。「 」は結果セル内の2つのテキストを区切るための区切り文字(スペース)です。カンマを区切り文字として使用したい場合は、ダブルクォーテーションで囲んだカンマ "," を入力するだけです。
Enterキーを押して結合結果を得たら、オートフィルハンドルを下にドラッグして結合結果を取得します。
例: No.(行15)と名前(行16)を1つのセルに結合する
行を1つのセルに結合する場合は、必要に応じて数式内のセル参照と区切り文字を変更し、オートフィルハンドルを右にドラッグして結合結果を取得します。
1.12 CONCATENATE関数の使用 (Excel 2016またはそれ以前のバージョン)
Excel 2016またはそれ以前のバージョンを使用している場合、CONCATENATE関数が役立ちます。
CONCATENATEに関する構文 |
CONCATENATE (テキスト1,[テキスト2],…) |
CONCATENATE関数の詳細については、こちらをご覧ください: CONCATENATE。
例: 名前(列F)と住所(列G)を1つの列に結合する
結合結果を配置したいセルを選択し、次のような数式を入力します:
=CONCATENATE(F2,",",G2)
数式において、F2とG2は結合する必要がある2つのテキストであり、","は結果セル内の2つのテキストを区切るデリミタ(カンマ)です。スペースをデリミタとして使用したい場合は、ダブルクォーテーションで囲んだスペース " " を入力するだけです。
押す 入力 結合結果を得るためのキーを押してから、オートフィルハンドルを下にドラッグして結合結果を取得します。
行を結合するには、必要に応じてセル参照と区切り文字を変更し、オートフィルハンドルを右にドラッグするだけです。
1.13 CONCAT関数またはTEXTJOIN関数の使用 (Excel 2019またはExcel 365)
Excel 2019またはExcel 365を使用している場合、CONCAT関数とTEXTJOIN関数がより良い選択かもしれません。
CONCATに関する構文 |
CONCAT (テキスト1,[テキスト2],…) |
CONCAT関数の詳細については、こちらをご覧ください: CONCAT。
CONCAT関数の使用方法はCONCATENATE関数と同じで、2つの列にある名と姓をそれぞれ1つの列に結合するために使用されます。この場合、数式は次のように使用されます:
=CONCAT(A21," ",B21)
数式では、A21とB21は結合する必要がある2つのテキストであり、「 」は結果セル内の2つのテキストを区切る区切り文字(スペース)です。他の区切り文字を使用したい場合は、ダブルクォーテーション「"」で囲んだ区切り文字を入力するだけです。
Enterキーを押して結合結果を得たら、オートフィルハンドルを下にドラッグして他の結合結果も取得します。
列の結合とは異なり、行を結合する際には、最初の数式を入力した後、すべての結合結果が得られるまでオートフィルハンドルを右にドラッグする必要があります。
TEXTJOINTに関する構文 |
TEXTJOIN (区切り文字, 空白を無視, テキスト1, [テキスト2], ...) |
TEXTJOIN関数の詳細については、こちらをご覧ください: TEXTJOIN。
TEXTJOINを使用して列または行を結合するには:
=TEXTJOIN(",",TRUE,E21:G21))
数式において、E21:G21 は結合する必要がある連続した範囲です。「 」は結果セル内の2つのテキストを区切る区切り文字(スペース)です。他の区切り文字を使用したい場合は、ダブルクォーテーション「"」で囲んだ区切り文字を入力するだけです。論理テキスト “TRUE” は結合時に空白セルを無視することを示します。空白を含めて結合したい場合は、TRUE を FALSE に置き換えてください。
Enterキーを押して結合結果を得たら、オートフィルハンドルを下にドラッグして他の結合結果も取得します。
空白を無視する |
![]() |
空白を含める |
![]() |
1. メモ帳を使用しても列の結合を実現できます(行の結合には影響しません)。
1つの列に結合したい範囲を選択し、押してください Ctrl + C 範囲をコピーするためのキー。
2. 開く メモ帳、そして押してください Ctrl + V コピーした範囲を貼り付けるためです。
3. メモ帳内の2つのテキスト間のタブを選択し、押してください。 Ctrl + H 有効にするために 置換 機能では、タブ記号が配置されています 検索内容 テキストボックス。
4. で 置換内容 テキストボックスに、結合されたテキストを分離するための区切り文字を入力し、その後クリックしてください。 すべて置換。その後、閉じる 置換 ダイアログ。
5. ここでNotepadのテキストを選択し、押してください Ctrl + C それらをコピーし、Excelに移動してセルを選択し、押します Ctrl + V 結合結果を貼り付けるため。
下のスクリーンショットに示すように、列または行を改行を含む1つのセルに結合したい場合:
まず、ExcelではCHAR()関数を使用して、式に入力が難しい文字を指定できることを理解する必要があります。たとえば、CHAR(10)は改行を返します。
次に、上記の数式に CHAR(10) を使用して、列または行を改行を区切り文字として結合します。
アンパサンド記号:
=A49&CHAR(10)&B49
CONCATENATE 関数:
=CONCATENATE(A49,CHAR(10),B49)
CONCAT 関数
=CONCAT(A49,CHAR(10),B49)
TEXTJOIN関数
=TEXTJOIN(CHAR(10),TRUE,A49:B49)
上記の数式を入力した後、結果を選択し、クリックしてください ホーム > テキストの折り返し.
これで、列が1つに結合され、改行で区切られました。
1列の行を1つのセルに結合したい場合、Excelの「両端揃え」機能が役立ちます。複数行のある列を選択し、[ホーム] > [塗りつぶし] > [両端揃え] をクリックすると、行が範囲の最上部のセルにスペースを区切り文字として結合されます。
![]() | ![]() |
この部分では、チュートリアルでは、次のスクリーンショットに示すように、列または行を1つのセルに結合し、空白セルをスキップする方法を紹介します。
1.21 TEXTJOIN関数の使用 (Excel 2019またはExcel 365)
Excel 2019またはExcel 365を使用している場合、幸いなことに、新しい関数TEXTJOINがこの作業を簡単に解決できます。
CONCATENATEの構文について |
TEXTJOIN (区切り文字, 空白を無視, テキスト1, [テキスト2], ...) |
TEXTJOIN関数の詳細については、こちらをご覧ください: TEXTJOIN。
例: 名前(列A)と番号(列B)とドメイン(列C)を1つのセルに結合してメールアドレスを生成します。一部の番号は空白の場合があります。
結合結果を配置するセルを選択し、次の数式を入力します:
=TEXTJOIN("",TRUE,A2:C2)
数式において、A2:C2 は結合する必要があるテキストを含む範囲です。「""」は結果セル内の2つのテキストを区切る区切り文字(なし)です。テキストを区切る区切り文字を使用したい場合は、単に「""」で囲んだ区切り文字を入力します(例: 「","」)。論理テキスト “TRUE” は、結合時に空白セルを無視することを示します。空白を含めて結合したい場合は、TRUE を FALSE に置き換えてください。
押す 入力 最初の結果を得るためのキーであり、必要なすべての結果を生成するためにオートフィルハンドルを下または右にドラッグします。
Excel 2016またはそれ以前のバージョンを使用している場合、テキストを1つずつ結合するにはアンパサンド記号 & を使い、空白は手動でスキップしてください。
結合結果を配置したいセルを選択し、次のような数式を入力します:
=A10&C10
数式では、& はテキストを結合するために使用されます。A10 と C10 は結合する必要のある2つのテキストです。カンマを区切り文字として使用したい場合は、単にダブルクォーテーションで囲んだカンマ "," を入力し、2つのテキストの間に & を使用して連結します。
押す 入力 結合結果を得るためのキーです。次に、数式の参照を変更して次の結合結果を得ます。
Excel 2016およびそれ以前のバージョンのユーザーの場合、空白をスキップしながら複数の列や行を結合する必要がある場合、VBAを使用して定義された関数を作成し、この作業を迅速に解決することができます。
1. Alt + F11 キーを押して、Microsoft Visual Basic for Applications ウィンドウを有効にします。
2. クリック 挿入 > モジュール 新しいモジュールを挿入するために。
3. 下記のコードを新しいモジュールにコピーして貼り付け、保存します。
VBA: 空白セルを無視してセルを結合
Function Concatenatecells(ConcatArea As Range) As String
'updateby Extendoffice
For Each n In ConcatArea: nn = IIf(n = "", nn & "", nn & n & "_"): Next
Concatenatecells = Left(nn, Len(nn) - 1)
End Function
4. ワークシートに戻り、結合結果を配置するセルを選択して、数式を入力します。
=Concatenatecells(A15:C15)
数式において、A15:C15は結合が必要なテキストを含む範囲です。VBAコードでは、「"_"」が結合結果内のテキストを区切るために使用される区切り文字を示します。必要に応じて区切り文字を変更できます。
ExcelにKutools for Excelをインストールしている場合、行、列、またはセルを結合して値を保持機能は、さまざまな結合作業に非常に役立ちます。
1. 結合したいセルと、結合結果を配置したいセルを選択します。
2. クリック Kutools > 結合と分割 > 行、列、またはセルを結合してデータを保持.
3. 表示されたダイアログで、以下のオプションを指定します:
1) 列の結合、行の結合、またはすべてのセルを1つに結合することを指定します。
列を結合する 例: | 行を結合する 例: | 1つのセルに結合する 例: |
![]() | ![]() | ![]() |
2) 結合結果内のテキストの区切り文字を指定します。
3) 結合結果の位置を指定します(「1つのセルに結合する」オプションを選択した場合は無効)
列の結合オプションを選択すると、結果を選択範囲の左側のセルまたは右側のセルに配置するように指定できます。
左側のセル 例: | 右側のセル 例: |
![]() | ![]() |
「 行を結合」オプションを選択すると、結果を選択範囲の最上部のセルまたは最下部のセルに配置するように指定できます。
上側のセル 例: | 下のセル 例: |
![]() | ![]() |
4) 結合結果に関する操作を指定します。
4. 結合を完了するには、「OK」または「適用」をクリックします。
結合されたセルの内容を保持する |
![]() |
結合されたセルの内容を削除 |
![]() |
これらのセルを結合する |
![]() |
この機能の詳細については、行、列、セルを結合して値を保持をご覧ください。
Kutools for Excel の詳細については、Kutools for Excel をご覧ください。
Kutools for Excelの30日間の無料試用版をダウンロードするには、今すぐダウンロードしてください。
場合によっては、列のいずれかに空白セルが含まれている場合に2つの列を結合したいことがあります。例えば、列Aにはユーザー名といくつかの空白セルがあり、列Bには名前が含まれているとします。このとき、以下のスクリーンショットに示すように、2つの列を結合する際に、列Aの空白セルを列Bの対応する内容で埋めたいと思います。
IF関数は、特定の条件をテストするために使用されます。ここでは、IF関数を使用してセルが空白かどうかをテストし、空白の場合には別の列の内容で空白を埋めることができます。
IF関数の構文について |
IF(論理式, [真の場合の値], [偽の場合の値]) |
IF関数の詳細については、こちらをご覧ください: IF
結合結果を配置したい列の最上行を選択し、以下の数式をコピーまたは入力します:
=IF(A2="",B2,A2)
次に押してください 入力 最初の結果を得るためのキーであり、オートフィルハンドルを下にドラッグしてすべての結果を取得します。
これで、列Aの空白セルが列Bの内容で埋められました。
こちらは、このジョブを処理できるVBAコードです。
1. Alt + F11キーを押してMicrosoft Visual Basic for Applicationsウィンドウを有効にし、次に「挿入」>「モジュール」をクリックして新しい空白のモジュールを作成します。
2. 下記のコードを新しいモジュールにコピーして貼り付けます。
VBA: 空白の場合、2つの列を結合する
Sub MergebyBlank()
'UpdatebyExtendoffice20220506
Dim xRg1, xRg2, xRgUser As Range
Dim xRg As Range
Dim xWsh As Worksheet
Dim xCount, xFNum As Integer
Set xRg1 = Range("A:A")
Set xRg2 = Range("B:B")
Set xWsh = xRg1.Worksheet
Set xRgUser = xWsh.UsedRange
Set xRg1 = Intersect(xRgUser, xRg1)
Set xWsh = xRg2.Worksheet
Set xRgUser = xWsh.UsedRange
Set xRg2 = Intersect(xRgUser, xRg2)
xCount = xRg1.Count
If (xCount > xRg2.Count) Then
xCount = xRg2.Count
End If
For xFNum = 1 To xCount
If (xRg1.Item(xFNum).Value = "") Then
If (xRg2.Item(xFNum).Value <> "") Then
xRg1.Item(xFNum).Value = xRg2.Item(xFNum).Value
End If
ElseIf (xRg2.Item(xFNum).Value = "") Then
If (xRg1.Item(xFNum).Value <> "") Then
xRg2.Item(xFNum).Value = xRg1.Item(xFNum).Value
End If
End If
Next
End Sub
コード内では、A:A と B:B が結合される2つの列です。必要に応じてこれらを変更してください。
3. そして押してください F5 キーまたはクリック 実行 ボタンをクリックすると、列 A が空の場合、列 B の値で列 A が埋められます。
同じIDを持つ行を2つ結合
複数の列を持つテーブルがあり、その中の1つの列に重複するID値が含まれていると仮定します。このチュートリアルでは、同じIDに基づいてテーブルの行を結合し、いくつかの計算を行う方法を紹介します。
この部分では、以下のように同じIDを持つ行を結合し、カンマで区切る方法を提供しています(スクリーンショット参照):
ここでは、この作業を処理できるVBAコードを提供します。
1. Alt + F11キーを押してMicrosoft Visual Basic for Applicationsウィンドウを有効にし、次に挿入 > モジュールをクリックして新しい空白のモジュールを作成します。
2. 新しいモジュールに以下のコードをコピーして貼り付けます。
VBA: 同じIDを持つ行を結合する
Sub Combine_Rows()
'UpdatebyExtendoffice20220506
Dim xRg As Range
Dim xRows As Long
Dim I As Long, J As Long, K As Long
On Error Resume Next
Set xRg = Application.InputBox("Select Range:", "Kutools For Excel", Selection.Address, , , , , 8)
Set xRg = Range(Intersect(xRg, ActiveSheet.UsedRange).Address)
If xRg Is Nothing Then Exit Sub
xRows = xRg.Rows.Count
For I = xRows To 2 Step -1
For J = 1 To I - 1
If xRg(I, 1).Value = xRg(J, 1).Value And J <> I Then
For K = 2 To xRg.Columns.Count
If xRg(J, K).Value <> "" Then
If xRg(I, K).Value = "" Then
xRg(I, K) = xRg(J, K).Text
Else
xRg(I, K) = xRg(I, K).Text & "," & xRg(J, K).Text 'here uses comma as separator, you can change it to others as you need
End If
End If
Next
xRg(J, 1).EntireRow.Delete
I = I - 1
J = J - 1
End If
Next
Next
ActiveSheet.UsedRange.Columns.AutoFit
End Sub
3. そして押してください F5 キーまたはクリック 実行 ボタンをクリックすると、Kutools for Excelのダイアログが表示され、同じIDを持つ行を結合する必要があるテーブルを選択できます。
4. [OK] をクリックします。これで、選択したテーブルの行が同じ ID に基づいて結合されました。
列が2つだけで、同じIDを持つ行を結合し、別の列の値をカンマで区切って表示したい場合(以下のスクリーンショットを参照)、IF関数が役立ちます。
1. IDをAからZへ並べ替えます。ID列を選択し、クリックします。 データ > AからZへ並べ替え.
2. 次に、 並べ替えの警告 ダイアログ、チェック 展開 選択オプションをクリック ソート.
同じIDが一緒に並べ替えられました。
3. 隣接する列で、次のようにIF関数を使用します:
=IF(A17=A18,C17&", "&B18,B18)
数式において、A17 と A18 は ID 列(A17 は ID 列のヘッダー)の2つの隣接するセルであり、B18 は A18 の対応するセルです。「,」は値をカンマで区切ることを示します。必要に応じて参照および区切り文字を変更できます。
4. 押す 入力 最初の結果を得るためのキーを押してから、オートフィルハンドルを下にドラッグしてすべての結果を取得します。
5. 隣の列に移動し、次のように数式を入力します:
=IF(A18<>A19,"結合"," ")
数式において、A18 と A19 は ID 列の2つの隣接するセルです。隣接するセルが等しくない場合、「Merged」(結合済み)を返し、そうでない場合は空白を返します。
6. 押す 入力 最初の結果を得るためのキーを押してから、オートフィルハンドルを下にドラッグしてすべての結果を取得します。
7. ヘッダーを含む最後の数式列を選択し、クリックします。 データ > フィルター.
8. 「 フィルター ボタンをクリックしてチェックを入れる 結合済み ドロップダウンメニューのチェックボックスをクリック OK.
これで、結合された行のみがフィルタリングされました。フィルタリングされたデータをコピーして別の場所に貼り付けてください。
IF関数の詳細については、こちらをご覧ください: IF。
ExcelにKutools for Excelをインストールしている場合、高度な行のマージ機能を使用してこの作業を簡単に実行できます。
1. 表を選択してからクリックします Kutools > 結合と分割 > 高度な行のマージ.
2. 「高度な行のマージ」ダイアログで、次の操作を行ってください:
1) ID列を選択し、それを主キーとして設定します。
2) 区切り文字で値を結合したい列を選択し、[結合]をクリックして区切り文字を1つ選択します。
3)クリック OK.
同じIDで行が結合されました。
高度な行のマージ機能を使用すると、元のデータが変更されます。使用前にデータをコピーとして保存してください。
この機能の詳細については、高度な行のマージをご覧ください。
Kutools for Excel の詳細については、Kutools for Excel をご覧ください。
Kutools for Excelの30日間の無料試用を希望される場合は、今すぐダウンロードしてください。
同じIDを持つ行を結合して、値の合計を計算したり、以下のスクリーンショットに示すように他の計算を行いたい場合、以下の方法が役立ちます。
列が2つしかなく、一方の列にテキスト(ID)が含まれ、もう一方の列に合計などの計算が必要な値が含まれている場合、Excelの組み込み機能である「統合」機能が役立ちます。
1. 結合結果を配置したいセルを選択し、 затемクリック データ > 統合.
2. 「統合」ダイアログで、次のように操作します:
1) 必要に応じて関数を選択してください;
2) 矢印をクリックして表を選択します。
3) 追加をクリックして、選択した範囲をすべての参照リストに追加します。
4) 最上行と最も左の列のチェックボックスをオンにします。
5) クリック OK.
これで、テーブルは同じIDに基づいて合計されました。
同じIDを持つ行を結合し、値を合計するVBAもあります。
1. 押す Alt + F11 有効にするキー Microsoft Visual Basic for Applications ウィンドウをクリックしてから 挿入 > モジュール 新しい空白のモジュールを作成するために。
2. 新しいモジュールで、以下のVBAコードをコピーして貼り付けます。
VBA: 重複行を結合して合計
Sub CombineRows()
'Updateby Extendoffice
Dim WorkRng As Range
Dim Dic As Variant
Dim arr As Variant
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Set Dic = CreateObject("Scripting.Dictionary")
arr = WorkRng.Value
For i = 1 To UBound(arr, 1)
Dic(arr(i, 1)) = Dic(arr(i, 1)) + arr(i, 2)
Next
Application.ScreenUpdating = False
WorkRng.ClearContents
WorkRng.Range("A1").Resize(Dic.Count, 1) = Application.WorksheetFunction.Transpose(Dic.keys)
WorkRng.Range("B1").Resize(Dic.Count, 1) = Application.WorksheetFunction.Transpose(Dic.items)
Application.ScreenUpdating = True
End Sub
3. そして押してください F5 キーまたはクリック 実行 ボタンをクリックすると、使用するテーブルを選択するダイアログがポップアップし、その後クリックします。 OK.
選択した範囲は、同じ値で結合され、合計されました。
VBAを使用すると元のデータが破損する可能性があるため、VBAを使用する前にデータをコピーとして保存してください。
テーブル内に結合して計算したい列が2つ以上ある場合、例えば3つの列があり、最初の列には結合が必要な重複する商品名が含まれ、2番目の列にはカンマで区切って結合する必要がある店舗名が含まれ、最後の列には最初の列の重複行に基づいて合計する必要がある数値が含まれているとします。下のスクリーンショットのように、このような処理を行うには、Kutools for Excelの「高度な行のマージ」機能が役立ちます。
1. 表を選択してからクリックします Kutools > マージと分割 > 高度な行のマージ.
2. 「 高度な行のマージ」ダイアログで、次の操作を行ってください:
1) ID列を選択し、それを主キーとして設定します。
2) 区切り文字で値を結合したい列を選択し、[結合] をクリックして区切り文字を1つ選択します。
3) 計算を実行したい列を選択し、[計算] をクリックして計算方法を1つ選択します。
4)クリック OK.
これで、同じ行が結合され、計算されました。
高度な行の結合機能を使用すると、元のデータが変更されます。使用前にデータをコピーとして保存してください。
この機能の詳細については、高度な行のマージをご覧ください。
Kutools for Excel の詳細については、Kutools for Excel をご覧ください。
Kutools for Excelの30日間の無料試用を希望される場合は、今すぐダウンロードしてください。
複数の列を持つ表があり、そのうちの1つの列にいくつかの重複する値が含まれている場合、この列で同じ値を持つ隣接する行を以下のスクリーンショットのように結合することが求められています。これを解決するにはどうすればよいでしょうか?
Excelには、この作業を直接解決できる組み込み機能はありませんが、ここで提供するVBAを使用すると対応できます。
1. Alt + F11 キーを押して Microsoft Visual Basic for Applications ウィンドウを有効にし、次に [挿入] > [モジュール] をクリックして新しい空白のモジュールを作成します。
2. 新しいモジュールで、以下のVBAコードをコピーして貼り付けます。
VBA: 同じ値を持つ隣接する行を結合する
Sub MergeSameCell()
'Updateby Extendoffice
Dim Rng As Range, xCell As Range
Dim xRows As Integer
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
xRows = WorkRng.Rows.Count
For Each Rng In WorkRng.Columns
For i = 1 To xRows - 1
For j = i + 1 To xRows
If Rng.Cells(i, 1).Value <> Rng.Cells(j, 1).Value Then
Exit For
End If
Next
WorkRng.Parent.Range(Rng.Cells(i, 1), Rng.Cells(j - 1, 1)).Merge
i = j - 1
Next
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
3. そして押してください F5 キーまたはクリック 実行 ボタンをクリックしてこのVBAを有効にすると、使用するテーブルを選択するためのダイアログが表示されます。その後、クリックしてください。 OK.
選択範囲内で、最初の列に同じ値を持つ隣接する行が結合されました。
VBAを使用すると元のデータが変更されるため、VBAを使用する前にデータのコピーを保存してください。また、このVBAは選択したテーブルの最初の列にある同じ値を結合します。
ExcelにKutools for Excelがインストールされている場合、Kutools for Excelの同じセルを結合機能を使用すると、この作業を1ステップで解決できます。
同じ値を結合したい列を選択し、その後クリックしてください。 Kutools > 結合と分割 > 同じセルを結合する.
これで、同じ値を持つ隣接セルが結合されました。
結合されたセルを分割して値を戻したい場合は、適用することができます。 セルの結合を解除して値を入力 機能。
この機能の詳細については、同じセルを結合するをご覧ください。
この機能の詳細については、セルの結合を解除をご覧ください。
Kutools for Excel の詳細については、Kutools for Excel をご覧ください。
Kutools for Excelの30日間の無料試用版をダウンロードしてください。
3 セルの結合
複数の行と列を含む範囲を1つのセルに結合する方法として、ここでは4つの方法を提供します。
例: 範囲 A1:C3 を結合する
Excelでは、アンパサンド記号 & は通常、テキストを結合するために使用されます。
結合結果を配置したいセルを選択し、次のような数式を入力します:
=A1&", "&B1&", "&C1&", "&A2&", " &B2&", "&C2&", "&A3&", "&B3&", "&C3
数式では、& はテキストを結合するために使用され、", " は結果セル内の2つのテキストを区切る区切り文字(カンマ+スペース)です。他の区切り文字を使用したい場合は、ダブルクォーテーションで囲んだセパレータを入力するだけです。
Enterキーを押して、結合された結果を取得します。
3.12 CONCATENATE関数の使用 (Excel 2016またはそれ以前のバージョン)
Excel 2016またはそれ以前のバージョンを使用している場合、CONCATENATE関数が役立ちます。
CONCATENATEの構文について |
CONCATENATE (テキスト1,[テキスト2],…) |
CONCATENATE関数の詳細については、こちらをご覧ください: CONCATENATE
結合結果を配置したいセルを選択し、次のような数式を入力します:
=CONCATENATE(A1,", ",B1,", ",C1,", ",A2,", ",B2,", ",C2,", ",A3,", ",B3,", ",C3)
数式において、A1、B1…、C3は結合したいテキストです。「", "」は結果セル内の2つのテキストを区切る区切り文字(カンマ+スペース)です。他の区切り文字を使用したい場合は、ダブルクォーテーションで囲んだセパレータを入力するだけです。
次に、Enterキーを押して結合結果を得ます。
3. 13 CONCAT関数またはTEXTJOIN関数の使用 (Excel 2019またはExcel 365)
Excel 2019またはExcel 365を使用している場合、CONCAT関数とTEXTJOIN関数がより良い選択かもしれません。
CONCATに関する構文 |
CONCAT (テキスト1,[テキスト2],…) |
CONCAT関数の詳細については、こちらをご覧ください: CONCAT。
CONCAT関数の使用方法は、CONCATENATE関数と同じで、別々の2つの列にある名前と姓を1つの列に結合するために使用されます。この場合、数式は次のように使用されます:
=CONCAT(A1,", ",B1,", ",C1,", ",A2,", ",B2,", ",C2,", ",A3,", ",B3,", ",C3)
数式において、A1、B1…、C3は結合したいテキストです。「", "」は結果セル内の2つのテキストを区切る区切り文字(カンマ+スペース)です。他の区切り文字を使用したい場合は、ダブルクォーテーションで囲んだセパレータを入力するだけです。
次に、Enterキーを押して結合結果を得ます。
TEXTJOINの構文について |
TEXTJOIN (区切り文字, 空白を無視, テキスト1, [テキスト2], ...) |
TEXTJOIN関数の詳細については、こちらをご覧ください: TEXTJOIN。
TEXTJOIN を使用して列または行を結合するには:
=TEXTJOIN(", ",TRUE,A1:C3)
数式において、A1:C3は結合する必要がある連続した範囲です。"," は結果セル内の2つのテキストを区切る区切り文字(カンマ+スペース)です。他の区切り文字を使用したい場合は、ダブルクォーテーション "" で囲んだ区切り文字を入力してください。論理テキスト “TRUE” は結合時に空白セルを無視することを示します。空白を含めて結合したい場合は、TRUEをFALSEに置き換えてください。
次に、Enterキーを押して結合結果を得ます。
区切り文字として改行を使用したい場合、CHAR(10) を数式で使用します。例えば、=TEXTJOIN(CHAR(10),TRUE,A1:C3) のようにし、結果セルの書式を「折り返して全体を表示」に設定してください。
3.14 行/列/セルを結合して値を保持しながら1つのセルにまとめる
ExcelにKutools for Excelがインストールされている場合、「 行、列、またはセルを結合して値を保持」機能を使用すると、この作業を迅速に処理できます。
1. 結合したいセルの範囲を選択し、次にクリックします。 Kutools > 結合と分割 > 行、列、またはセルを結合してデータを保持.
2. 表示されたダイアログで、チェックしてください 1つのセルに結合する 必要に応じて区切り文字を指定し、クリックしてください。 OK.
これで、セルは特定の区切り文字を使用して1つのセルに結合されました。結合されたセルにセルの内容が多すぎて表示できない場合は、クリックできます。 テキストの折り返し の下に ホーム タブを表示します。
この機能の詳細については、行/列/セルを結合して値を保持をご覧ください。
Kutools for Excel の詳細については、Kutools for Excel をご覧ください。
Kutools for Excelの30日間の無料試用を希望される場合は、今すぐダウンロードしてください。
セルを1つの列に転置 |
![]() |
セルを1つの行に転置する |
![]() |
3.21 範囲に名前を付け、INDEX関数を使用する(単一列のみ対象)
範囲のセルを単一列に転置したい場合は、範囲に名前を付け、その後INDEX関数を使用します。
1. セルの範囲を選択し、右クリックしてコンテキストメニューを表示し、クリックします。 名前を定義する.
2. 表示された 新しい名前 ダイアログで、名前を入力します 名前 テキストボックスをクリック OK.
3. 範囲に名前を付けた後、転置されたデータを配置するセルを選択し、次のようにINDEX関数を使用します:
=INDEX(MyData,1+INT((ROW(A1)-1)/COLUMNS(MyData)),MOD(ROW(A1)-1+COLUMNS(MyData),COLUMNS(MyData))+1)
INDEX関数の詳細については、こちらをご覧ください。
4. 押す 入力 キーを押した後、オートフィルハンドルを下にドラッグして、この数式を「#REF!」エラー値が表示されるまで埋めます。
5. エラー値を削除すると、セルの範囲が1つの列に結合されます。
セルを1つの列に結合する場合、ここに機能するVBAもあります。
1. Alt + F11キーを押してMicrosoft Visual Basic for Applicationsウィンドウを有効にし、次に「挿入」 > 「モジュール」をクリックして新しい空白のモジュールを作成します。
2. 以下のVBAコードをコピーして、空のモジュールに貼り付けます。
VBA: 範囲を列に変換
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
3. その後、押してください F5 キーまたはクリック 実行 ボタンをクリックすると、セルの範囲を選択するダイアログがポップアップします。 OK.
4. 結果を配置するセルを選択するための別のダイアログが表示されます。クリックしてください。 OK.
複数のセルを1つの行に結合したい場合、Excelにはその機能が標準では搭載されていません。しかし、もし Kutools for Excel がインストールされている場合、その Transform Range 機能を使用すると、範囲を単一の列や行に変換できるだけでなく、行や列を範囲に変換することもサポートしています。
1. セルの範囲を選択し、クリックします Kutools > 範囲 > 範囲の変換.
2. で 範囲の変換 ダイアログ、確認 範囲を単一列に変換 または 範囲を単一行に変換 必要に応じてオプションを選択します。クリック OK.
3. 結果を配置するセルを選択するためのダイアログが表示されます。クリックしてください。 OK.
これで、セルの範囲が行または列に変換されました。
この機能の詳細については、範囲の変換をご覧ください。
Kutools for Excel の詳細については、Kutools for Excel をご覧ください。
Kutools for Excelの30日間の無料試用を希望される場合は、今すぐダウンロードしてください。
複数列を持つテーブルに重複がある場合、以下のスクリーンショットのように重複を除きながら列を1つの列にまとめるにはどうすればよいですか?
この部分では、この作業を処理するための3つの異なる方法を提供しています。
Excelでは、この作業を解決する一般的な方法は、列を1つずつコピーして貼り付け、その後重複する値を削除することです。
1. 最初の列を選択し、押してください Ctrl + C コピーするキーを押してから、目的のセルを選択し、押してください Ctrl + V キー。
2. そして、手順1を繰り返して他の列をコピーし、最初の列の下に貼り付けます。
3. その後、積み上げられた列を選択し、クリックします。 データ > 重複を削除、その後 重複を削除 ダイアログで列名を確認し、クリックします。 OK.
4. これで、重複する値が削除されたことを知らせるダイアログが表示されます。クリックしてください。 OK それを閉じると、積み重ねられた列は一意の値のみ保持されます。
もし数百列ある場合、1つずつコピーして貼り付けるのは時間がかかります。しかし、ExcelにKutools for Excelがインストールされている場合、Transform Range機能を使用すると範囲を迅速に列に変換でき、その後Excelの Remove Duplicates機能を適用できます。
列の範囲を選択し、クリックしてください Kutools > 範囲 > 範囲の変換.
次にチェックする 範囲を単一列に変換 オプションをクリックします。 OK 積み重ねられた列を配置するセルを選択します。
そして、重複する値を削除するために「重複の削除」を適用します。
この機能の詳細については、範囲の変換をご覧ください。
Kutools for Excelの詳細については、Kutools for Excelをご覧ください。
Kutools for Excelの30日間の無料試用版をダウンロードするには、今すぐダウンロードしてください。
さらに、この作業を解決できるVBAコードがあります。
1. Alt + F11 キーを押して Microsoft Visual Basic for Applications ウィンドウを有効にし、次に [挿入] > [モジュール] をクリックして新しい空白のモジュールを作成します。
2. 下記のコードを新しいモジュールにコピーして貼り付けます。
VBA: 重複なしで列を1つにスタックする
Sub FindUniques()
'UpdatebyExtendoffice
Dim rng As Range
Dim InputRng As Range, OutRng As Range
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set dic = CreateObject("Scripting.Dictionary")
For j = 1 To InputRng.Columns.Count
For i = 1 To InputRng.Rows.Count
xValue = InputRng.Cells(i, j).Value
If xValue <> "" And Not dic.Exists(xValue) Then
OutRng.Value = xValue
dic(xValue) = ""
Set OutRng = OutRng.Offset(1, 0)
End If
Next
Next
End Sub
3. そして押してください F5 キーまたはクリック 実行 ボタンをクリックすると、スタックする必要のある列を選択するためのダイアログがポップアップします。OKをクリックしてください。
4. 次に、2つ目のポップアップダイアログで、積み重ねられた列を配置するためのセルを選択し、クリックします。 OK.
これで、列は一意の値のみを持つ1つの列に積み重ねられました。
2つの列があり、そのうちの1つが特別な書式(例:カスタム日付時刻 mm/dd/yyyy)で設定されている場合、通常の方法でこれら2つの列を結合すると、以下のスクリーンショットに示すように、カスタム書式は削除されてしまいます。
ここで、この部分では、セルを結合して書式を保持するためのいくつかの方法を提供します。
TEXT関数は、数値を特定の書式でテキストに変換するために使用されます。ここでは、まずセル(数値を含む)を書式に変換するために使用し、その後で「&」、CONCATENATE関数、CONCAT関数、またはTEXTJOIN関数を使用して他のセルと結合することができます。
セルを一般的に1つに結合する詳細については、1.1に戻ってください。
TEXT関数に関する構文 |
TEXT (値, 書式テキスト) |
TEXT関数の詳細については、TEXT関数をご覧ください。
ここでは、CONCAT関数にTEXT関数を埋め込む例を取り上げます。
結合結果を配置したいセルに、以下の数式をコピーして貼り付けてください:
=CONCAT(TEXT(A2,"mm/dd/yyyy hh:mm")," ",B2)
数式の中で、A2は書式を保持したいセルであり、「mm/dd/yyyy hh:mm」は使用する書式です。B2は結合に使用される別のセルです。「 " " 」は値をスペースで区切ることを示します。必要に応じて参照、書式、区切り文字を変更できます。
Enterキーを押して、オートフィルハンドルを下にドラッグし、この数式でセルを埋めます。
1. 結合して1つのセルにしたいテーブルを選択し、押してください Ctrl + C それらをコピーするために。
2. 空のものを開く 単語 ドキュメントを押す Ctrl + V それらを配置するために、文書内の表をクリックすると、表の右上に十字アイコンが表示されます。
3. をクリックします レイアウト タブをクリックし、その後 テキストに変換 に データ グループ、ポッピングで 表をテキストに変換 ダイアログで、列の区切り文字を指定します。クリック OK.
これで、Word内の表の内容がテキストに変換されました。
4. 変換されたテキストを選択し、押してください Ctrl + C それらをコピーし、Excelに戻って空白のセルを選択して、押してください Ctrl + V 結合結果を貼り付けるため。
3.43 便利なツールの使用 – データを失うことなく結合する
最も効率的な方法は、Kutools for Excelの「行、列、またはセルを結合して値を保持」機能を使用することです。この機能を適用する際に「書式設定された値を使用する」チェックボックスをオンにするだけで、結合結果はデータの書式を保持します。
1. 結果を配置するセルを含む表を選択し、クリックします。 Kutools > マージと分割 > 行、列、またはセルを結合してデータを保持.
2. 表示されたダイアログで、必要な結合操作を指定し、チェックを外してください。 書式設定された値を使用する チェックボックス(デフォルトではこのオプションはチェック済みです)。クリック OK.
データが結合され、書式が保持されました。
この機能の詳細については、行、列、セルを結合して値を保持をご覧ください。
Kutools for Excel の詳細については、Kutools for Excel をご覧ください。
Kutools for Excelの{module745}日間の無料試用版をダウンロードするには、今すぐダウンロードしてください。
年、月、日が分離された列に含まれている表があると仮定します。この場合のタスクは、これらの列を結合して以下のようなスクリーンショットに示される日付を生成することです。
DATE関数は、年、月、日を使用して日付を作成するために使用されます。
DATE関数に関する構文 |
DATE( 年, 月, 日 ) |
DATE関数の詳細については、DATE関数をご覧ください。
以下の数式を、日付を配置するセルにコピーして貼り付けてください:
=DATE(A2,B2,C2)
この数式では、A2、B2、C2はそれぞれ年、月、日を含むセルです。
押す 入力 最初の日付を取得するキーであり、オートフィルハンドルを下にドラッグしてすべての日付を取得します。
その他のExcelチュートリアル:
複数のワークブック/ワークシートを1つに結合
このチュートリアルでは、あなたが直面する可能性のあるほぼすべての結合シナリオを列挙し、それぞれに対応する専門的な解決策を提供します。
テキスト、数値、日付セルの分割(複数列に分離)
このチュートリアルは、テキストセルの分割、数値セルの分割、および日付セルの分割という3つの部分に分かれています。各部分では異なる例を提供しており、同じ問題に遭遇した際にどのように分割作業を処理すればよいかを理解するのに役立ちます。
Excelでデータを失わずに複数セルの内容を結合する
このチュートリアルでは、セル内の特定の位置への抽出を絞り込み、Excelで特定の位置に基づいてセルからテキストや数字を抽出するためのさまざまな方法をまとめています。
Excelで2つの列を比較して一致と違いを確認する
この記事では、2つの列を比較する際に遭遇する可能性のあるほとんどのシナリオをカバーしており、お役に立てれば幸いです。
最高のOffice生産性ツール
Kutools for Excel は、ほとんどの問題を解決し、生産性を80%向上させます。
- スーパー数式バー(複数行のテキストや数式を簡単に編集可能); 閲覧レイアウト(多数のセルを簡単に読み取り・編集可能); フィルター範囲への貼り付け...
- セル/行/列を結合してデータを保持; セル内容を分割; 重複する行を統合して合計/平均を計算... 重複セルを防止; 範囲を比較...
- 重複または一意の行を選択; 空白行を選択(すべてのセルが空); スーパー検索および多くのワークブックでのあいまい検索; ランダム選択...
- 数式参照を変更せずに複数のセルを正確にコピー; 複数のシートへの自動参照作成; 箇条書き、チェックボックスなどを挿入...
- お気に入りの数式、範囲、グラフ、画像を素早く挿入; パスワードでセルを暗号化; メーリングリストを作成してメールを送信...
- テキストの抽出、テキストの追加、特定の位置の文字を削除、スペースを削除; ページング小計の作成と印刷; セルの内容とコメント間の変換...
- スーパーフィルター(他のシートにフィルタースキームを保存して適用); 月/週/日ごとの高度な並べ替え、頻度など; 太字、斜体による特殊フィルタリング...
- ワークブックとワークシートを統合; 主キーカラムに基づいてテーブルをマージ; データを複数のシートに分割; xls、xlsx、PDFの一括変換...
- ピボットテーブルのグループ化(週番号、曜日など)... ロックされたセルとロックされていないセルを異なる色で表示; 数式/名前を持つセルをハイライト...

- Word、Excel、PowerPoint、Publisher、Access、Visio、Projectでタブ付き編集と閲覧を有効化します。
- 新しいウィンドウではなく、同じウィンドウ内の新しいタブで複数のドキュメントを開き、作成します。
- 生産性を50%向上させ、毎日数百回のマウスクリックを削減します!
