dポイントプレゼントキャンペーン実施中!

エクセルでシフト表を時間順に並び替えたいです。

他の方の投稿で、見つけた方法でやってみましたが、
出勤時間は並び変わりますが、退勤時間は変わりませんでした。

出勤時間のみの並び替えの方法は、
F2に =IFERROR(INDEX(B$2:B$94,MATCH(SMALL($J$2:$J$94,ROW(B1)),$J$2:$J$94,0)),"")
J2に =IF(B2="","",RANK(C2,C:C,1)*100+ROW(B1))
の数式が入ってますが、CとEの退勤時間は順になりません。

出勤時間・退勤時間ともに、早い順に並び替える方法はありますか?

「エクセルの勤怠表を時間順に並び替えたい」の質問画像

A 回答 (1件)

こんにちは



どこが何の時間なのか明示されていませんけれど、全体をソートして、第一キーをC列、第二キーをD列にしたいものと解釈しました。

>出勤時間・退勤時間ともに、早い順に並び替える方法はありますか?
エクセルの機能の「並べ替え」で第一、第二キーを設定するのが、一番簡単だろうと思います。


ご提示のように関数で別に表示する方法でやるのなら、J列の値にD列の評価を加えておけば良いでしょう。
(何を計算しているのか理解すれば、応用は効くと思いますけれど・・)
例えば、
=IF(B2="","",(RANK(C2,C:C,1)*100+RANK(D2,D:D,1))*100+ROW(B1))
とか。

作業列を使わないで直接求めるなら、F2セルに
=IFERROR(INDEX(B:B,MOD(AGGREGATE(15,6,(INT((INT($C$2:$C$99*10000)+$D$2:$D$99)*10000)+ROW($C$2:$C$99)/1000)/($B$2:$B$99<>""),ROW(A1))*1000,1000)),"")
などでしょうか。
    • good
    • 0
この回答へのお礼

フィルターは使わない方法を探しておりましたので、
書いていた方法で数式でさせていただきました。
ありがとうございました。

お礼日時:2022/03/11 12:34

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

このQ&Aを見た人はこんなQ&Aも見ています