プロが教えるわが家の防犯対策術!

DATEDIF関数で、「○年○ヶ月」と勤務年数が出てくる表があるのですが、
項目タイトルにフィルターをして並べ替えようとするのですが、

0年2月
0年4ヶ月
12年7ヶ月
16年2ヶ月
1年11ヶ月
20年3ヶ月
22年3ヶ月
23年6ヶ月
23年6ヶ月
2年1ヶ月
3年5ヶ月

こんな感じで一部は並べ替えられているのですが、昇順降順がぐちゃぐちゃになってしまいます。

全てセルの書式は「標準」になっていて、文字列はありません。

どうすればよいかどなたかご教示いただければありがたいです。

A 回答 (3件)

セルの書式設定は標準になっていて文字列ではないということなので、おそらく


=DATEDIF(入社年月日,基準日,"Y")&"年"&DATEDIF(入社年月日,基準日,"YM")&"ヶ月"
のような数式になっているものと推測します。

だとすると、一休さんの頓智問答のようになってしまいますが、そもそも勤務年数は入社年月日から基準日までの年月を算出しているのですから、勤務年数を昇順に並べるということは、入社年月日を降順に並べるということと同じ意味なのではありませんか?

例えば、入社年月日がA2以下にあって、

=DATEDIF(A2,基準日,"Y")&"年"&DATEDIF(A2,基準日,"YM")&"ヶ月"

というような数式になっているのだとしたら、A列の降順並べれば、自動的に
勤務年数は昇順になると思うのですがいかがでしょうか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
並べ替えたかったわけは、年数ごとの人数を出したかったのですが、並べ替えなくても、隣に年数だけ出す計算式を入れて、そこから割り出す方法にしました。
解決いたしました。
ありがとうございました。

お礼日時:2023/08/01 06:24

文字列にして1年を01年2年を02年3年を03年にすればいかがですか。

    • good
    • 0
この回答へのお礼

ご回答ありかとうございました。
違う方法にしましたが、解決いたしました。

お礼日時:2023/08/01 06:24

こんばんは



>DATEDIF関数で、「○年○ヶ月」と勤務年数が出てくる~
DATEDIFではそのような結果になると思えませんので、TEXT関数等で文字列にしていませんか?

>全てセルの書式は「標準」になっていて、文字列はありません。
もしそうなら、セルの値(=数値のはず)はどうなっていますか?
(セルを選択して、数式バーに表示される値を見ればわかるはずですが・・)
多分、表示されているままの「文字列」になっているものと推測します。

文字列の大小比較は、先頭の文字から順に行われますので、例えば
 0年、1年、2年、3年、11年、20年
というデータを昇順に並べ替えると
 0年、11年、1年、20年、2年、3年
のような結果になります。
多分、ご質問の状態はこのようになっているのではないかと推測しました。


>どうすればよいかどなたかご教示いただければありがたいです
手っ取り早いののは、文字列の書式を
 00年00ヶ月
形式にして、前ゼロ表示で桁数を揃えることで可能と思います。

前ゼロが嫌であれば、結果をシリアル値に変換し直して、書式設定で
 yy"年"m"ヶ月"
として表示させることでも可能と思いますが、「年」部分を一桁にするのは難しいです。

どうしても現状のままで行いたければ、作業列を作成してそちらにDATEDIFの結果(=数値)をそのまま表示するようにして、そちらの列をキーにして並び替えれば良いでしょう。
作業列の表示がうるさいようであれば、表示書式を「;;;」としておけば、表示上は見えなくなります。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

=DATEDIF(F136,$H$1,"y")&"年"&DATEDIF(F136,$H$1,"ym")&"ヶ月"
この計算式で、いつも○年○ヶ月と勤務年数を出しています。

データ→並べ替えで、見てみると、結果が文字列的なので、うまくいかないようです。

最終的には○年以上~○未満が何人という出し方をしたかったので、
=DATEDIF(F53,$H$1,"y")

年数で出してカウントすることにしました。

ありがとうございます。

お礼日時:2023/07/31 20:44

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

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