- ベストアンサー
エクセル:10~19才なら10代、20~29才なら20代と置き換えたいのですが、、
A1の列に年齢データが2万行くらい並んでいます。 年齢が入力されているセル内を、以下の条件で置き換えたいのですが、どのようにすればよいでしょうか? 年齢データが 10才~19才の場合⇒10代と置き換え 20才~29才の場合⇒20代と置き換え 30才~39歳の場合⇒30代と置き換え IF関数かなと思ったのですが、上記の通り、条件も結果も複数ある場合のやり方がわかりませんでした。 ご指導をお願い致します。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
B1=INT(A1/10)&"0代" で下方にコピー
その他の回答 (6)
- imogasi
- ベストアンサー率27% (4737/17069)
この質問の答えとして、お勧めはVLOOKUP関数(True型)です。 既に回答が出たので、 別解としてMATCH関数関数を使う例を上げます。 F1:G11に 0 子供 10 10代 20 20代 30 30代 40 40代 50 50代 60 60代 70 70代 80 80代 90 90代 100 長寿 を作ります。 A列に年齢が入るとして、 B1に =INDEX($G$1:$G$11,MATCH(A1,$F$1:$F$11,1),1) MATCH関数の第3引数1がポイントです。解説書を読んでください。 と入れて下方向に式を複写してください。 IFは段階が増えると式が長くなり、各期がしませんし、INTなどはルールが整然としていないと使えません。IF文は早く卒業してください。
お礼
お礼が遅くなり、申し訳ありません。 MATCH関数は使ったことがありませんでしたが、勉強してみます。 ありがとうございました。
- ki3519
- ベストアンサー率50% (6/12)
Vlookup関数をつかったらどうでしょうか? 別シートにたとえば A列 B列 1行 0 幼児 2 10 10代 3 20 20代 4 30 30代 5 40 40代 6 50 50代 7 60 60代 8 70 70代 9 80 80代 10 90 90代 のような参照表を作成しておき、年齢の入った一覧表がSheet1のA列にはいってるとしたならば、 =VLOOKUP(A1,Sheet2!$A$1:$B$10,2,TRUE) と関数をいれます。
お礼
お礼が遅くなり、申し訳ありません。 勉強になりました。今度から使えるように覚えたいと思います。 ありがとうございました。
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
年齢が数値で入力されていて年代を数値で返したいなら、 =int(A1/10)*10 なんですよ。if関数なんて使いません。問題は、新しい列を作るん じゃなくて「置き換え」たいってところですね。VBAで延々とループ を回すんでない限り、一旦新しい列を作って計算させてから「コ ピー→形式を選択してペースト→値」という流れになります。
お礼
お礼が遅くなり、申し訳ありませんでした。 助かりました。どうもありがとうございました。
- redowl
- ベストアンサー率43% (2140/4926)
>年齢データが2万行くらい >以下の条件で置き換えたい 2万近く有る年齢のデータが入っているセル内に 上書きしても良いという意味でしょうか? 年齢は、残しておいても良いような。 別列に =INT( 年齢の入ったセル/10)*10 &"代" と数式入力すれば?
お礼
お礼が遅くなり、大変申し訳ありません。 調べてもなかなか分からなかったのに、早く解決できて、大変ありがたく感じています。 どうもありがとうございました。
- hirumin
- ベストアンサー率29% (705/2376)
数字だけに関してであれば、 =ROUNDDOWN(A1/10,0)*10 10で割った商の少数を切り捨てて、10倍する これでどうでしょうか
お礼
お礼が遅くなり、大変申し訳ありません。 このような方法もあるのですね。勉強になりました。 どうもありがとうございました。
- lasichi
- ベストアンサー率31% (122/389)
IF文は複数組み合わせて使えます。 IF( A1 < 20 , 10 , IF( A1 < 30 , 20 , 30)) こんな感じで・・
お礼
お礼が遅くなり申し訳ありません。 勉強になりました。活用してみます。ありがとうございました!
お礼
お礼が遅くなり、大変申し訳ありません。 調べてもなかなか分からなかった事を、たった2行で簡潔に教えていただけ、すぐ解決できたことを感謝します。 この式を使わせていただき、仕事がすぐ終わりました。 ありがとうございます!