空白以外のセルを詰めて抽出する方法|値のあるセルのみ全て

ここでは、エクセルで「空白以外のセルを詰めて抽出する方法」を解説します。

 

複数の関数を使うので見た目ちょっと複雑ですが、使ってみると結構簡単です。

1.まずはやりたいことを確認

始めに、やりたいことを例を含めて確認します。

 

1-1.空白以外のセルを詰めて全部抽出したい

やりたいことは、「空白以外のセルを詰めて全部抽出する」です。

 

言い換えると、「空白のセルは無くして、値のあるセルのみにする」です。

 

途中途中で空白のある表を、詰めて空白のない形にまとめ直します。

 

1-2.例で確認

一つ例を見てみましょう。

上の表は、各県の県庁所在地が記載されたものです。ただし、ところどころ空白になっています。

 

そこで、都道府県名の列を基準にして、空白以外のセル・データのみを抽出してみます。

このように、基準にした列(例では「都道府県名」)が空白のデータを除いて表を上に詰めることができます。

 

ちなみに「0」が気になりますが、この対処法も解説します。

2.数式の形を確認

数式の形は、次の通りです。

=IFERROR(INDEX(抽出列,1/LARGE(INDEX((条件範囲<>"")/ROW(条件範囲),0),ROW(A1))),"")

 

この数式を「表示したい一番左上のセル」に入れ、数式を完成させた後で他のセルにコピーします。

 

数式が長くて関数も多いですが、指定するのは以下の2つだけです。

 

2-1.抽出列

「抽出列」には、元の表の一番左の列をまるっと指定します。

 

例えば、先ほどの例だと「抽出列」は、「A:A」となります。

2-2.条件範囲

「条件範囲」には、空白以外を判定する範囲を指定します。

 

ポイントは、次の通りです。

ポイント
  • 範囲を1列指定すること
  • 必ず絶対参照にする(「$」を全部で4つ付ける)こと
  • 2ヶ所とも同じくすること

例えば、先ほどの例だと「条件範囲」は、「$B$2:$B$7」となります。

2-3.出来上がった数式を確認

以上のことを入れると、先ほどの例でセルA9に入れる数式は、次のようになります。

=IFERROR(INDEX(A:A,1/LARGE(INDEX(($B$2:$B$7<>"")/ROW($B$2:$B$7),0),ROW(A1))),"")

後は、右方向とした方向に数式をコピーすれば完成です。

3.数式の作り方を確認

では、実際に数式を作ってみます。

上の表を使って、都道府県名の列で空白以外のデータを抽出してみます。

 

数式は「セルA9」に入れます。そして、数式完成後に他のセルにコピーします。

 

以下手順です。

 

(1)結果を表示させたいセルに、以下の数式を貼り付ける

【コピーする数式】

=IFERROR(INDEX(抽出列,1/LARGE(INDEX((条件範囲<>"")/ROW(条件範囲),0),ROW(A1))),"")

 

(2)「抽出列」の文字を消して、該当する列をクリックする

 

(3)「条件範囲」の文字を消して、マウスの左ドラッグで範囲を指定し、その後F4キーを1回押す

 

(4)もう一ヶ所も(3)と同様に行う

 

(5)Enterキーを押す

 

(6)セルの右下にカーソルを合わせ、「+」マークになったら下方向、右方向それぞれに左ドラッグで数式をコピーすれば完了

これで、空白以外のセル・データを抽出することができます。

4.ゼロを表示させない方法

先ほどの数式は、元のセルが空白だと「0」を返します。そこで、0を表示させたくない場合の対処法も説明します。

 

エクセルには「ゼロを表示させるか?」が設定で選べ、これを「表示させない」ように変えればゼロは空白で表示されるようになります。

設定の変更方法は、次の通りです。

 

(1)「ファイル」タブを選択する

 

(2)「オプション」を選択する

 

(3)「詳細設定」の「ゼロ値のセルにゼロを表示する」のチェックを外す

これで、ゼロが表示されなくなります。なお、この設定はシートごとにかかります。

 

以上、参考になれば幸いです。

 


口コミ・評判のいいExcel本の紹介】


Top