• ベストアンサー

エクセル2003、数式で空欄にしたセルを一括削除し上に詰める方法

エクセル2003、数式で空欄にしたセルを一括削除し上に詰める方法 空欄セルをF5を使い、 空欄だけ削除して上に詰める方法は分かりましたが、 数式によって空欄にしたセルは「空欄」として認められないようで、 どうしても一括で削除出来そうにありませんでした。 データが膨大なために手作業で削除するにはかなり大変です。 方法をご存知であれば回答よろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.5

ん? >方法2は出来なかった 方法2は,""にならない計算式が数値の計算結果を出している場合に使える方法です。 あなたの実際の式の内容が判りませんので,出来ないかもしれませんね。 #別の手 Ctrl+Fで「検索」のダイアログを出す オプション>>を開いて,検索対象を値に変える 何も入力しない を全て検索する 現れたダイアログの下側一覧を,ダイアログの中でCtrl+Aで選択する と,対応するセルが選択されるので,ワークシート上で右クリックして削除する。 #参考 実際にやってみると判りますが,形式を選んで値を貼り付けても""は空白になりません。

nattouoh
質問者

お礼

ご参考の話ですが、 お礼のコメントした後に実際に試してみて気付きました。 早とちりでした。 でもなぜなんでしょう・・・。 方法2の件ですが、 何をやっていたのか””でない方を文字列になるようにしていました・・・。 これでやっと解決できそうです。 再度ありがとうございました。

その他の回答 (4)

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

こんばんは! 一例です。 ↓の画像でA~C列のデータで空白を無視して、E~G列に表示させるようにしてみました。 E2セルの数式は =IF(COUNTIF(A$2:A$10,"*?")<ROW(A1),"",INDEX(A$2:A$10,SMALL(IF(A$2:A$10<>"",ROW($A$1:$A$9)),ROW(A1)))) (元データの10行目まで対応できる数式です。) これは配列数式になって仕舞いますので、 Shift+CtrlキーをおしながらEnterキーで確定します。 このE2セルを列方向と行方向にオートフィルでコピーすると 画像のような感じになります。 以上、参考になれば良いのですが 他に良い方法があれば読み流してくださいね。m(__)m

nattouoh
質問者

お礼

これが一番したかったことかもーと思ったら、 自分の頭では理解が出来ませんでした・・・。 すみません。 理解できるように努力します。 回答ありがとうございました。

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

大体、セル構成を変える用なのはエクセル関数では苦手なのだ。 >空欄だけ削除して上に詰める方法は分かりましたが、 どんな方法を勉強したのかな。 ーー >数式によって空欄にしたセルは「空欄」として認められないようで、 数式がエクセル間数式なら 空白(””で返した)は「セルの値」が空白で、「セルの値」は数式のあるなしと別世界のことなのだ。 そのことをわきまえずこんな質問をしているが、おかしいと思う。 ーー 関数はセルの値を加工し、結果をセルの値で返すもの。それで式の値を(引数として)使うときは、そのセルの値の来歴は考えなくて良い。 ・手入力 ・コピー貼り付け ・オートフィルではした・入力規則で選択した ・関数の戻り値(結果) ・VBAでセルに入力した値 ・エクセルの機能で算出された値(ピボットテーブルとか) ・アクセスなどからインポートしてきた値 全て差は無いものと考えてください。 ーーー 私のいう「imogasi方式」なら A列  B列 a 1 c 2 d 3 B2の式は =IF(A2="","",MAX($B$1:B1)+1) 下方向に式を複写。A列が空白でないものに連番を振った。 Sheet2でA1  に =INDEX(Sheet1!$A$2:$A$100,MATCH(ROW(),Sheet1!$B$2:$B$100,0),1) ト入れて下方向に式を複写。 結果 Sheet2 a c d ーーー 一種の非空白行の抜き出い問題であるともいえる。 Googleで「imogasi方式」で照会すれば、沢山の過去の「抜き出し問題」の質問が出て、上記と違うやり方も出ている。

nattouoh
質問者

お礼

回答ありがとうございます。 >どんな方法を勉強したのかな。 F5キーのジャンプ機能(?)を使って、 「空白」にチェック入れる方法は調べました。 それにしても色々方法があるものなのですね。 勉強になります。 ありがとうございました。

  • cev87700
  • ベストアンサー率72% (187/257)
回答No.2

数式の方をコピーするのは簡単ですか? 例えばシート全体をコピーして、別のシートに「編集」→「形式を選択して貼り付け」→「値のみ」 で貼り付ければ、数式が全滅しますので、F5セル選択で空白セルとして認識させることができると思います。 その後で、数式を貼り直すというのはどうでしょう? 数式の場合、1箇所に記載すればオートフィルなどを使ってわりと簡単に拡散できるとおもうので、そんな方法を思いついてみました。 数式のペーストが難しい状況やセル単位で書式が崩れるのが問題だと使えませんので、ご参考まで。

nattouoh
質問者

お礼

盲点でした・・・。 恥ずかしい限りです。 こんな簡単な方法があったんですね。 回答ありがとうございました。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

方法1 今の数式: =IF(条件,"",計算式) 変更後: =IF(条件,NA(),計算式) に書き換える。必要ならCtrl+Hで置換などを上手に使って効率的に。 F5からセル選択で「数式」の「エラー値」をチェックし他はチェックを外してOKし,削除で上に詰める。 方法2 たとえば今の数式: =IF(条件,"",数値を計算する計算式) のようであるなら,F5から「数式」の「文字」のみにチェックして選択し,削除で上に詰める 必要に応じて当該の数式を入れたセル範囲を選んでから操作する

nattouoh
質問者

お礼

回答ありがとうございます。 方法2は出来なかったです。 でも方法1は出来ました、ありがとうございます。 エラー値にすると認識するんですね。

関連するQ&A