アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/10/07 12:26

こんばんは!


色々方法はあるかと思いますが・・・

一例です。

↓の画像で説明させていただきます。

尚、配列数式になりますので、
この画面から数式をコピー&ペーストする場合は
単に貼り付けただけではエラーになると思いますので
貼り付け後、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
「範囲列毎の空白行を削除する簡単な方法をご」の回答画像2
    • good
    • 0

各人のデータ列ごとに2列目をキーに「並べ替え」ればどうでしょうか。


それが手間なら、マクロを組めば良いと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!