• ベストアンサー

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

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

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答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/17068)
回答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/7940)
回答No.1

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

nattouoh
質問者

お礼

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

関連するQ&A

  • エクセルで数式を入れても値が空欄になります

    タイトルの通りなのですが、 エクセルに数式を入れてもセルが空欄になって値が表示されません。 全く同じ数式を他のセルに入れると値が表示されるので 数式が間違っていることはないと思われます。 また、空欄になって値が表示されないセルにマウスをあてると 数式自体は入ってます。 時々、このような事象が起きるのですが どうやって改善すれば良いでしょうか?

  • Excel セルが空欄なら、その上のセルの値を入力

    Excelを使用しています。 A列に作業開始時間、B列に作業時間と入力した場合、 A列にB列の作業時間を足した時間を数式で簡単に表示したいですが 途中で空欄がある場合はその上のセルの時間に隣のB列の作業時間を合計した値を表示したいです。 <イメージ> =====================  A列  B列 12:00  00:05 12:05  00:05 12:10  00:10 12:20  00:15 12:35  00:05 12:40  00:15 ===================== 作業時間と空欄の行数は不規則です。 関数などで一つのセルに入力して、あとはフィルドドラッグでコピーする便利な方法はありませんか? よろしくお願いいたします。

  • 数式をずれないようにする方法

    こんにちは。 エクセル2010を使用しています。 エクセルして数式を使用して表を作成をしているのですが、どうしても縦行の挿入や削除をすると数式がずれてしまってエラーになってしまいます。 sheet1に入っている数式は、セルD6に「=IF(sheet2!F4,"○","")」と入っています。 sheet2に入っているD4~K4の入っているセルを削除・挿入をするとsheet1の数式がエラーになってしまいます。 なので$マークを入れたりもするのですがうまくいきません。 申し訳ありませんが、挿入・削除をしてもずれない方法とエラーにならない方法をどなたかご存知でしたら教えていただけないでしょうか? 宜しくお願い致します。

  • Excel - 数式で引っ張った数式を有効にする方法

    お世話になります。 ちょっと説明が難しいのですが・・・ 数式で引っ張ってきた数式を、値として貼り付けると、最初に【=】が付いていても即座に数式として認識してくれません。 まぁ値で貼り付けてあるので当然と言えば当然なんですが。 これらはF2で数式バーに一旦移行し、その後ENTERで確定すると、その時点で初めて数式として認識します。 このようなセルを一括で、数式にする方法はないでしょうか。ひとつずつF2→ENTER→F2→ENTERとやっていくのは非常に面倒でして。 再計算、置換等、色々試してみましたが、どうも効果がないようです。 何かお知恵のある方、どうぞご協力宜しくお願いします。 【例】 A1に【=】 A2に【C3】 C3に【10】と入っているとします。 任意のセルに【=CONCATENATE($A$1,$A$2)】と入力しますと、そのセルには【=C3】と表示されます。 このセルをコピーし、別のセルに値貼り付けします。 するとコピー先のセルには【=C3】と表示されます。 本来は【10】と表示させたいので、F2で一旦編集に入り、ENTERで確定すると、ここで初めて【=C3】が【10】に変わります。 これを一括でやる方法、ということです。

  • excelでセル内の改行を削除する

    excelの改行削除について質問です。 セル内の改行を一括削除する方法として「Ctrl」+「J」の 置換でできると思うのですが、文字がたくさん入っているセルに 対して行うと、「数式が長すぎます。」のポップアップが出てしまいます。 CLEAN関数で行おうとするも、文字数が多いためかきちんと表示されません。 他に何か良い方法はないでしょうか?

  • エクセル もし、セルが空欄なら、その上のセルの値を入力する

    エクセル2002を使用しています。 例えば、A列に順に数値が入っているのですが、ところどころ空欄です。 <こんな感じです。> 12 15 22 33 34 55 <ここまで> 数値は、連番ではありません。不規則です。約300行あります。 本当は、空欄の場所は一つ上のセル数値が入るのです。(連続して空欄になっているところも、一つ上の数値と同じ値が入るのです。) <上の例を当てはめると> 12 15 22 22 ← 33 34 34 ← 34 ← 55 <ここまで> こんな感じにしたいのです。 関数などで一つのセルに入力して、あとはフィルドラッグでコピーするなんていう便利な方法はありませんか? すでに入力している数値が消えないようにしたいのです。 よろしくお願いいたします。

  • 複数のセル一括削除

    エクセルでランダムに位置する セルのデーターを一括削除できるようにしたいのですが 初心者なので、マクロの登録の仕方もわかりません。     宜しくお願いします。

  • エクセル 複数ファイルの一括セル入力

    同じフォーマットを用いた複数のエクセルファイル(約200~3000)の編集作業で、 例えば、全てのファイルについて A1のセルに同じテキスト、数式、または関数を一括で入力する方法を探しています。 マクロを使えばできることなのだということは解りましたが、 マクロ初心者なので自分で作ることまではいたることができませんでした。 もしこの一連の作業のマクロ、もしくはフリーウェアなどご存知でしたら ご教授いただけますと幸いです。 宜しくお願いいたします。

  • エクセルでロックしたセルを見つける方法

    エクセルで「ロックしたセルを見つける方法」ってありますか? たくさんの数式を入れ込み、シートの中も数式が入っているセルとそうでないセルが入り組んでいます。 初期段階で数式のセルにロックをかけ保護をしましたが、作業が進むにつれ、どのセルにロックをかけたかがわからなくなってしまいました。 ロックのかけ方は一般的な方法で、一旦全部のセルを選択し、書式設定のロックを【無】にし、F5で数式のセルのみを選択しロックを【有】にして、シートを保護する、という方法です。 よろしくお願い致します。

  • エクセルで特定のセルだけを一括で削除したいです。

    エクセルでの処理についてです。 エクセルのDセルに文章が入っています。 文中に青文字が含まれているセルと、黒文字だけのセルが混ざっているのですが、 黒文字だけのセルを一括で削除したのです。可能でしょうか? どなたか教えていただけると幸いです。

専門家に質問してみよう