• ベストアンサー

空白セルのある行を削除する関数をご教示下さい。

空白セルのある行を削除する関数をご教示下さい。 ただし、条件付で、特定の列の空白セルに該当する行しか削除しない という条件付の関数を作成したいと考えています。 文章だけでは分かりにくいため、図を添付します。 エクセルに詳しい皆様の回答を心よりお待ちしています。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 一例です。 ↓の画像の配置で説明します。 F2セルに =IF(COUNTA($B$2:$B$1000)<ROW(A1),"",INDEX(A$2:A$1000,SMALL(IF($B$2:$B$1000<>"",ROW($A$1:$A$999)),ROW(A1)))) これは配列数式になってしまいますので、この画面からF2セルにコピー&ペーストしただけではエラーになると思います。 貼り付け後、F2キーを押す、または貼り付けセルをダブルクリック、または数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定します。 数式の前後に{ }マークが入り配列数式になります。 これを列方向と行方向にオートフィルでコピーした後に、日付の列は表示形式を「日付」にします。 尚、元データが空白の場合は「0」が表示されますので、 当方使用のExcel2003の場合ですが メニュー → ツール → オプション → 「表示」タブで 「ゼロ値」のチェックを外せば 0は表示されなくなります。 数式は元データの1000行目まで対応できるようにしていますが データ量によって範囲指定の領域はアレンジしてみてください。 以上、長々と書きましたが 参考になれば幸いです。m(__)m

mame1218
質問者

お礼

ありがとうございました。 まさに期待通りの回答を頂きました。 大変助かりました。 当然ですが、BAです。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

関数ではセル、行、列の削除、シートの削除は出来ません。エクセル関数の常識。 関数では書式のコピーも出来ないです。いま在る列に望みの「セルの値」を与えるよう仕組むだけです。 ーーー 実質削除に相当する、空白で無い行を、別のシートに値を代入する、ことしか出来ない。 書式は消えるので、手作業で再設定が必要。 ーー その方法は作業列として1列使い、C列の値にもとづいて、 例データ Sheet1 A,B列など簡単のため省略 C列         F列(空き列、作業列) a 1 s 2 d 3 f 4 g 5 F2の式は=IF(C2="","",MAX($F$1:F1)+1) 下方向に式を複写する・ 結果は上記 Sheet2に行って C2セルに=INDEX(Sheet1!$A$1:$E$10,MATCH(ROW()-1,Sheet1!$F$1:$F$10,0),COLUMN()) を入れて下方向に式を複写する。 A列、B列でもそのまま貼り付けて良い。 10行までとしている式だが適当に増やした式にする。 Googleで「imogasi方式」で照会すれば沢山例が出る。 実はこの質問は、「空白でない行」の抜き出し問題なんだ。

mame1218
質問者

お礼

回答いただき、ありがとうございました。 参考にさせていただきました。

  • mar00
  • ベストアンサー率36% (158/430)
回答No.1

C列を選択後、編集→ジャンプ→セル選択→空白セル を選択して行を削除すれば、よいかと思います。

mame1218
質問者

お礼

回答いただき、ありがとうございました。 参考にさせていただきました。 エクセルの利用の幅がひろがりました。

関連するQ&A