• ベストアンサー

範囲列毎の空白行を削除する簡単な方法をご教示ください。

エクセルで、AB列は佐藤さん、CD列は山口さん、といったぐあいに 1人2列を使って9人の月の残業を整理しています。 各2列は5行目から下にACEG・・・には暦の1日から31日までが、 また、BDFH・・・列には残業した時間がそれぞれ入力されています。 この表で各人毎(2列毎)に残業をしていない日(空白の行)を それぞれ削除して、上に詰めたいのですがよい方法はないでしょうか。

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

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

No.2です! たびたびごめんなさい。 前回回答の数式の$マークが余分に付いていました。 次のように訂正してください。 H5セルは =IF(COUNTA(B$5:B$35)>=ROW(A1),INDEX(A$5:A$35,SMALL(IF(B$5:B$35<>"",ROW($A$1:$A$31)),ROW(A1))),"") I5セルは =IF(COUNTA(B$5:B$35)>=ROW(A1),INDEX(B$5:B$35,SMALL(IF(B$5:B$35<>"",ROW($A$1:$A$31)),ROW(A1))),"") で配列数式と操作方法は前回同様です。 どうも何度も失礼しました。m(__)m

hijtxa
質問者

お礼

お礼が遅れて申し訳ありません。 活用させていただいてます。 いろいろと方法があるのですね。 参考になりました、ありがとうございました。

その他の回答 (2)

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

こんばんは! 色々方法はあるかと思いますが・・・ 一例です。 ↓の画像で説明させていただきます。 尚、配列数式になりますので、 この画面から数式をコピー&ペーストする場合は 単に貼り付けただけではエラーになると思いますので 貼り付け後、F2キーを押すか、数式バー内を一度クリックします。 そうすると編集可能になりますので Shift+Ctrl+Enterキーを押すと 数式の前後に{ }マークが入り配列数式になります。 H5セルは =IF(COUNTA($B$5:$B$35)>=ROW(A1),INDEX($A$5:$A$35,SMALL(IF($B$5:$B$35<>"",ROW($A$1:$A$31)),ROW(A1))),"") として、Shift+Ctrl+Enter I5セルは =IF(COUNTA($B$5:$B$35)>=ROW(A1),INDEX($B$5:$B$35,SMALL(IF($B$5:$B$35<>"",ROW($A$1:$A$31)),ROW(A1))),"") として、Shift+Ctrl+Enter そして、H5・I5セルを範囲指定し、I5セルのフィルハンドルで 列方向にオートフィルでコピーすると全ての人の1行目に数式がコピーされるはずです。 最後に5行目全てを範囲指定し、最後の列のフィルハンドルで 下へコピーすると 画像のような感じになります。 以上、参考になれば幸いですが、 他に良い方法があれば読み流してくださいね。m(__)m

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

各人のデータ列ごとに2列目をキーに「並べ替え」ればどうでしょうか。 それが手間なら、マクロを組めば良いと思います。

関連するQ&A

専門家に質問してみよう