- ベストアンサー
エクセルの並び替え?オートフィルター?
エクセルで、登録日を今を基準として5年未満、5年以上10年未満、10年以上15年未満たっているものなどと振り分けたいとき、例えばひとつのセルに文字列として87.02.01、以下下方向に90.06.03、85.06.04、97.04.08、00.11.5、04.06.08・・・とランダムに西暦・年・月・日が入力されている場合、どうしたらよいでしょうか? 単純に並べ替えをして小~大にはしましたが、そのあとオートフィルターで条件を設定すればいいのか、そのやり方がわかりません。 また、関数を使った方法もあるでしょうか?よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
簡単な関数の組み合わせをしてはどうですか? (1)C1セルに、本日を表示 (2)D1セルに、本日より5年前を表示 (3)E1セルに、本日より10年前を表示 (4)F1セルに、本日より15年前を表示 (5)(A列に日付があるとして) B列にIf文を入力。 もし、Aのセルが(2)よりもおおきかったら”5年未満” もし、Aのセルが(3)よりもおおきかったら ”10年未満” もし、Aのセルが(4)よりも大きかったら”15年未満” どれでもなかったら”15年以上” と表示する。 (6)B列でオートフィルターをかける。 そうすれば、5年年未満を表示させたければ”5年未満”を選択するのみでOKではないでしょうか? 沢山セルを使ってしまいますが、一つのセルに入力するよりは関数が簡単かなぁと。。。。 C列-1 =today D列-1 =DATE(YEAR(C1)-5,MONTH(C1),DAY(C1)) E列-1 =DATE(YEAR(C1)-10,MONTH(C1),DAY(C1)) F列-1 =DATE(YEAR(C1)-15,MONTH(C1),DAY(C1)) A列 B列 2000/1/1 =IF(A1>$D$1,"5年未満",IF(A1>$E$1,"10年未満",IF(A1>$F$1,"15年未満","15年以上"))) 2005/5/5 =IF(A2>$D$1,"5年未満",IF(A2>$E$1,"10年未満",IF(A2>$F$1,"15年未満","15年以上"))) 2004/3/3 =IF(A3>$D$1,"5年未満",IF(A3>$E$1,"10年未満",IF(A3>$F$1,"15年未満","15年以上")))
その他の回答 (2)
- Miusuke
- ベストアンサー率20% (5/25)
ちゃんとできるか分からないですが、 入力されている列を選択して、編集→置換で、 『.』→『/』というふうに、全て置換にしてみたら直りませんか? 多分、87.02.01→1987/2/1になると思いますヨ(^-^)v
お礼
ありがとうございました!これですべて直って、式もちゃんと反映されました。。。
- mshr1962
- ベストアンサー率39% (7417/18945)
A列に上記のデータがあるとして B2=FLOOR(DATEDIF(DATEVALUE(SUBSTITUTE(IF(LEFT(A2,2)*1>30,"19","20")&A2,".","/")),TODAY(),"y"),5) としてB列をオートフィルターなどで区分けする。 B列の数値は 0 :5年未満 5 :5年以上10年未満 10:10年以上15年未満 になります
お礼
ありがとうございます。挑戦してみたのですが関数初心者で‥ もう少し簡単にできる方法はないでしょうか?
補足
ありがとうございます。教えていただいたように、B列にIF関数をいれてみました。、もともとA列が87.02.01という文字列のまますべて入力されていて、それだとうまく式が反映されず、A列を1987/2/1と入力し直すと反映されました。これでユーザー設定で表示形式を87.02.01とでるようにすればいいようなのですが、やはりA列の日付を全部入力し直さないといけないのでしょうか?