小技集

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ



2026年1月20日【ID:0】

【Excel】1つの数式でセル結合を解除

※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。


以下の画像のように、一部のセルが結合された表を、たった1つの数式(黄色のセル)で、セルの結合を解除して抽出する方法について紹介していきます。


セル結合を解除して抽出する数式

こちらでは、以下の左側の「セルの結合を含む表」から、セルの結合を含まない状態で右側の表に抽出していきます。

数式に使う関数は、SCAN関数です。
SCAN関数は、指定した範囲のそれぞれの値に対して、1つ前に処理した値を活用し、さらに処理を行った結果を返します。

まずは、先頭の「大カテゴリー」をセルの結合を含まない状態で抽出する場合、SCAN関数を用いて、以下の法則で抽出する必要があります。

大カテゴリーの先頭のセルから順番に確認し、
・セルが空でない場合は、そのまま値を抽出
・セルが空の場合は、1つ前に抽出した値を抽出

これを数式で表現すると、以下のようになります。

=SCAN("",B3:B11,LAMBDA(a,b,IF(b<>"",b,a)))
// "":初期値に、最初の値に関しては1つ前に抽出した値が存在しないため「空」を指定
// B3:B11:処理対象の範囲に、「大カテゴリーの範囲」を指定
// LAMBDA(a,b,IF(b<>"",b,a):処理の内容に、「LAMBDA関数」を指定
// → LAMBDA(1つ前に抽出した値[1], 確認対象の値[2], [1]と[2]を用いた数式)

数式を入力することで、以下のように抽出することができます。

他の項目に関して、単純に「B3:B11(大カテゴリー)」の範囲を広げれば抽出できそうに思えますが、実際は、以下のように上手くいきません。

=SCAN("",B3:D11,LAMBDA(a,b,IF(b<>"",b,a)))

この原因は、SCAN関数が処理する順番にあります。
SCAN関数は、指定された範囲の先頭行の先頭列から隣の列へと処理をします。
そのため、SCAN関数を用いて複数列の範囲を指定する場合は、行と列の値を入れ替える必要があります。

それを実現するには、TRANSPOSE関数を活用します。
SCAN関数に指定する範囲をTRANSPOSE関数で囲って、以下のように指定します。

=SCAN("",TRANSPOSE(B3:D11),LAMBDA(a,b,IF(b<>"",b,a)))

ただ以下のように、処理した結果も行と列の値が入れ替わってしまいます。

そのため、SCAN関数自体もTRANSPOSE関数で囲って、以下のように指定します。

=TRANSPOSE(SCAN("",TRANSPOSE(B3:D11),LAMBDA(a,b,IF(b<>"",b,a))))

これで完成です。
以下のように、セルの結合を解除して抽出することができます。


パソコンで開く場合は、記事の最後に「リンクコピー」があるためご活用ください。

※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。


メンバー募集 メンバー募集





リンクの共有はこちらから行えます。

  リンクコピー    X Facebook はてなブックマーク Pocket
トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ


- 人気の記事 -



- メンバー限定 [一覧] -



サイト累計閲覧数

7420453

有料動画講座
(買い切り)

Excel完全制覇


ちょっとした機能 便利ツール
【小技集】

【Excel】住所を簡単に入力する方法

【Excel】セル内にミニグラフを作成「スパークライン」

【Excel】重複のない順位を割り当てる

【Excel】前日から値が変わったら自動で色付け

【Excel】選択している行のデータを縦向きに抽出

【Excel】登録データから未来を予測

【Excel】8桁の数値の日付を日付形式に変換

【Excel】特定の日付まで連続で入力

【ExcelVBA】複数シートの表に一括反映

【Excel】条件付き書式で結合した見た目にする方法

【Excel】2行1データの表を1行1データに変換

【ExcelVBA】表の最終行の行番号を取得する方法

【ExcelVBA】ダブルクリックで塗りつぶしとリセットを繰り返す

【Windows】圧縮ファイルを解凍した時の小技

【Excel】表示されているセルのみ集計

【ExcelVBA】相関性を保ったまま重複のない番号を自動入力

【Excel】REPLACE関数とSUBSTITUTE関数の使い分け

【ExcelVBA】チェックボックスを動的に入力(一括チェック)

【Excel】絵グラフを瞬時に作成

【Excel】特定の文字を基準に列を分割

【Excel】SORT(BY)関数で複数列を基準にして並べ替える

【Windows】隠し機能「GodMode」の作成方法

【Excel】文字列を並べ替えた時の順番

【Excel】テーブルを使わずに自動で拡張する範囲設定

【ExcelVBA】完了タスクを非表示にして着手中タスクを上位表示する





一覧ページへ

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ

メンバーに加入すると多くの特典が得られます

各プラン特典一覧 各プラン特典一覧

 加入ページへ 
⚠️今が最安値です⚠️

※メンバーページと連携すると表示されなくなります