• ベストアンサー

エクセル年齢早見(誕生月)

エクセルで年齢早見表を作成しています。 年齢の高い順で、かつ誕生月毎(1月から12月)に順位をつけたいのですが、 どのような関数をつかえば作成することは可能でしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.9

>12月のデータは拾ってくれないようです。  重ねての不具合、誠に申し訳御座いません。  抽出した生年月日を表示させるための関数中に、バグの取りこぼしが御座いました。  不具合を解決するために、Sheet2のB3セルに入力する関数を次のものに差し替えてから、Sheet2のB3セルをコピーして、Sheet2の各月の各生年月日を表示させるセル(B列、E列、H列、K列、N列、Q列、T列、W列、Z列、AC列、AF列、AI列の各列の3行目以下のセル)に貼り付けて下さい。 =IF(ISNUMBER(MONTH(("1904年"&A$1&"1日")+0)),IF(ROWS($3:3)>COUNTIF(Sheet3!$B:$B,"<"&(MONTH(("1904年"&A$1)+0)+1)*10000000)-COUNTIF(Sheet3!$B:$B,"<"&MONTH(("1904年"&A$1)+0)*10000000),"",INDEX(Sheet4!$B:$B,MATCH(SMALL(Sheet3!$B:$B,ROWS($3:3)+COUNTIF(Sheet3!$B:$B,"<"&MONTH(("1904年"&A$1)+0)*10000000)),Sheet3!$B:$B,0))),"")  

kumikokiku
質問者

お礼

ありがとうございます。 見事に自分の理想としていたデータを抽出することができました。 最後に確認ですが、関数の途中でINDEX(Sheet4!$B:$B,・・・省略)があるのですが、これはSheet4ではなく、Sheet1で処理してよかったのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (9)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.10

>最後に確認ですが、関数の途中でINDEX(Sheet4!$B:$B,・・・省略)があるのですが、これはSheet4ではなく、Sheet1で処理してよかったのでしょうか?  はい、仰る通りです。  何度も間違いを犯してしまい、誠に申し訳御座いません。

全文を見る
すると、全ての回答が全文表示されます。
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.8

>「並べ替えを行わないままの、元データの表の左隣に、同じ月生まれ(生まれ年が異なる場合も含む)の中での生年月日の日付が古さの順位」を表示させる ための方法です。  今仮に、御質問欄に添付されている画像中で、「生年月日」と入力されている水色のセルがSheet1のD4セルであり、Sheet2のA列を作業列として使用し、Sheet1のA5以下に「同じ月生まれ(生まれ年が異なる場合も含む)の中での日付が古さの順位」を表示するものとします。  まず、Sheet2のA5セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/DAY(INDEX(Sheet1!$D:$D,ROW()))),INDEX(Sheet1!$D:$D,ROW())+MONTH(INDEX(Sheet1!D:D,ROW()))*10000000,"")  次に、Sheet2のA5セルをコピーして、Sheet2のA6以下に貼り付けて下さい。  次に、Sheet1のA5セルに次の関数を入力して下さい。 =IF(ISNUMBER(INDEX(Sheet2!$A:$A,ROW())),COUNTIF(Sheet2!$A:$A,"<"&INDEX(Sheet2!$A:$A,ROW()))-COUNTIF(Sheet2!$A:$A,"<"&FLOOR(INDEX(Sheet2!$A:$A,ROW()),10000000))+1,"")  次に、Sheet1のA5セルをコピーして、Sheet2のA5以下に貼り付けて下さい。  以上です。  後、もう一点確認しておきたい事がありました。  御質問欄の添付画像の上の方に桃色で塗り潰されているセルが写っていて、その下に何か記入されている様なのですが、その「桃色で塗り潰されているセル」の直ぐ下のセルに入っているデータは、どの様な意味を持っているのでしょうか?  そして、そのデータは、この御質問の早見表を作成する際に必要となる条件に関わるデータなのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.7

 回答No.5です。 >全て1位の人のみしか表示されません。 >何か設定が間違っているのでしょうか。  申し訳御座いません、私のミスです。  Sheet2のA3セルとB3セルのそれぞれに入力する関数の中に、 ROW($3:$3) という部分が御座いますが、この部分は本当の処は ROW($3:3) とせねばなりませんでした。  ですから、Sheet2のA3セルに入力する正しい関数は、 =IF(ISNUMBER(B3),INDEX(Sheet1!$A:$A,MATCH(SMALL(Sheet3!$B:$B,ROWS($3:3)+COUNTIF(Sheet3!$B:$B,"<"&MONTH(B3)*10000000)),Sheet3!$B:$B,0)),"") です。  同様に、Sheet2のB3セルに入力する正しい関数は、 =IF(ISNUMBER(MONTH(("1904年"&A$1&"1日")+0)),IF(ROWS($3:3)>COUNTIF(Sheet3!$B:$B,"<"&(MOD(MONTH(("1904年"&A$1)+0),12)+1)*10000000)-COUNTIF(Sheet3!$B:$B,"<"&MONTH(("1904年"&A$1)+0)*10000000),"",INDEX(Sheet1!$B:$B,MATCH(SMALL(Sheet3!$B:$B,ROWS($3:3)+COUNTIF(Sheet3!$B:$B,"<"&MONTH(("1904年"&A$1)+0)*10000000)),Sheet3!$B:$B,0))),"") です。  修正の際には、以下の様な操作を行われると宜しいかと思います。  まず、上記のそれぞれの関数をSheet2のA3セルとB3セルにそれぞれ入力し直すか、或いはSheet2のA3セルとB3セルの2個のセルを選択してから、Excelの置換機能を使用して、 ROW($3:$ を ROW($3: に置換して下さい。  次に、Sheet2のA2~C3の範囲をコピーして、Sheet2のD2~AJ3の範囲に貼り付けて下さい。  次に、Sheet2の3行目全体(A3~~AJ3の範囲のみでも可)をコピーして、4行目以下に貼り付けて下さい。  後それから確認したいのですが、後から御質問欄に添付された画像では、文字が潰れてしまっているために、どの様な内容が表示されているのかが良く判りません。  只、枠で囲まれている表の部分の項目名が、中央が「名前」、右端が「生年月日」であるらしい事は判りました。(水色で塗り潰されたセルの中の左端に記されている項目名は読み取れませんでした)  ですが、画像には行番号も列番号も写ってはおりませんので、例えば「生年月日」と表示されている水色のセルが、何列の何行目のセルであるのかも判りませんから、「何列の何行目以下に、何のデータが並んでいるのか」という事を御教え願います。  それと、「枠で囲まれている表の部分」の左隣には「順位」と記されている様に見えなくもないのですが、若しかしますと、回答No.5の添付画像の例の様に、「別の表に1月生まれから12月生まれまで人のデータを、生年月日の日付が古い順に並べた一覧にする」のではなく、単に、「並べ替えを行わないままの、元データの表の左隣に、同じ月生まれ(生まれ年が異なる場合も含む)の中での生年月日の日付が古さの順位」を表示させる様にした方が宜しいのでしょうか?

kumikokiku
質問者

補足

ありがとうございます。 早速、数式修正したところ表示されました。 しかし1月から11月は、表示されますが12月のデータは拾ってくれないようです。 なにか設定に問題ありますか? ご質問の桃色のセルは、年齢算出基準日を入力しているだけです。

全文を見る
すると、全ての回答が全文表示されます。
  • chonami
  • ベストアンサー率43% (448/1036)
回答No.6

最終的に12月からの並びになってしまうんですが… 生年月日がD2から始まるとして、例えばF列に =TEXT(D2,"mm")&DATEDIF(D2,TODAY(),"Y") と入力し、この列を降順で並べ替えるというのでは如何でしょうか? 年齢が1ケタの人がいるともう一工夫いります。 また、ランキングの数を出したいのでしたら、 =COUNTIF($F$2:F2,LEFT(F2,2)&"*") と入力して下にコピーでは? (参照の$の位置に気をつけてください。) すみません、かなりやっつけな式なので他にもっとスマートな回答がつくと思いますが。

全文を見る
すると、全ての回答が全文表示されます。
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 今仮に、Sheet1のA列の2行目以下に氏名が入力されていて、Sheet1のB列に生年月日が入力されているものとして、 Sheet2のA列に1月生まれの人の氏名を年齢順に表示し、Sheet2のB列にその生年月日を、Sheet2のC列にその順位を表示し、同様に、 Sheet2のD列~F列に2月生まれの人の、 Sheet2のG列~I列に3月生まれの人の、 Sheet2のJ列~L列に4月生まれの人の、          ・          ・          ・ Sheet2のAE列~AG列に11月生まれの人の、 Sheet2のAH列~AJ列に12月生まれの人の データを、それぞれ表示するものとします。  又、Sheet3のA列とB列を作業列として使用するものとします。  まず、Sheet3のA1セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/DAY(INDEX(Sheet1!$B:$B,ROW()))),INDEX(Sheet1!$B:$B,ROW())+MONTH(INDEX(Sheet1!$B:$B,ROW()))*10000000,"")  次に、Sheet3のB1セルに次の関数を入力して下さい。 =IF(ISNUMBER($A1),$A1+COUNTIF($A$1:$A1,$A1)/(COUNT($A:$A)+1),"")  次に、Sheet3のA1~B1の範囲をコピーして、同じ列の2行目以下に貼り付けて下さい。  次に、Sheet2の A1セルに   1月 D1セルに   2月 G1セルに   3月 J1セルに   4月 M1セルに   5月 P1セルに   6月 S1セルに   7月 V1セルに   8月 Y1セルに   9月 AB1セルに  10月 AE1セルに  11月 AH1セルに  12月 と入力して下さい。  次に、Sheet2のA2セルに「氏名」、Sheet2のB2セルに「生年月日」、Sheet2のC2セルに「順位」と入力して下さい。  次に、Sheet2のA3セルに次の関数を入力して下さい。 =IF(ISNUMBER(B3),INDEX(Sheet1!$A:$A,MATCH(SMALL(Sheet3!$B:$B,ROWS($3:$3)+COUNTIF(Sheet3!$B:$B,"<"&MONTH(B3)*10000000)),Sheet3!$B:$B,0)),"")  次に、Sheet2のB3セルに次の関数を入力して下さい。 =IF(ISNUMBER(MONTH(("1904年"&A$1&"1日")+0)),IF(ROWS($3:$3)>COUNTIF(Sheet3!$B:$B,"<"&(MOD(MONTH(("1904年"&A$1)+0),12)+1)*10000000)-COUNTIF(Sheet3!$B:$B,"<"&MONTH(("1904年"&A$1)+0)*10000000),"",INDEX(Sheet1!$B:$B,MATCH(SMALL(Sheet3!$B:$B,ROWS($3:$3)+COUNTIF(Sheet3!$B:$B,"<"&MONTH(("1904年"&A$1)+0)*10000000)),Sheet3!$B:$B,0))),"")  次に、Sheet2のC3セルに次の関数を入力して下さい。 =IF(ISNUMBER(B3),RANK(B3,B:B,1),"")  次に、Sheet2のA2~C3の範囲をコピーして、Sheet2のD2~AJ3の範囲に貼り付けて下さい。  これで、Sheet2に「年齢の高い順で、かつ誕生月毎(1月から12月)に順位をつけた」表が、自動的に表示されます。

kumikokiku
質問者

お礼

ありがとうございます。 早速試してみます。

kumikokiku
質問者

補足

数式を入力して頑張ってみましたが、Sheet2に「年齢の高い順で、かつ誕生月毎に順位」をだそうとすると、全て1位の人のみしか表示されません。 何か設定が間違っているのでしょうか。

全文を見る
すると、全ての回答が全文表示されます。
  • chayamati
  • ベストアンサー率41% (257/615)
回答No.4

今日現在の計算です 年齢の関数は =DATEDIF(生年月日,TODAY(),"Y") 誕生月は    =Month(生年月日) 補足   生年月日からの経過月数  =DATEDIF(生年月日,TODAY(),"M")   生年月日からの経過日数  =DATEDIF(生年月日,TODAY(),"D")

全文を見る
すると、全ての回答が全文表示されます。
  • CC_T
  • ベストアンサー率47% (1038/2201)
回答No.3

> 年齢の高い順で、かつ誕生月毎(1月から12月)に順位をつけたいのですが 作りたいものがイマイチイメージできません・・・。 例えば老人ホームで毎月の誕生会で入居者の誕生日を祝うのに、複数の人名と生年月日のリストから、その月に生まれた人をピックアップして年齢順に並べたいのでしょうかね? ⇒例えばA列に2013/1/16 など日付が入っているなら、=YEAR(A1)や=MONTH(A1)で年や月の値がそれぞれ別個に取り出せますから、両者の結果で並べ替えをさせれば良いでしょう。

全文を見る
すると、全ての回答が全文表示されます。
  • chonami
  • ベストアンサー率43% (448/1036)
回答No.2

誕生日を昇順で並べればご希望通りになるんじゃないかと思いますが、 >誕生月毎(1月から12月)に順位 の意味がちょっとわかりません。 どのようにデータを入力しているのかもわかりませんし…(シリアル値?) 具体的にどういったデータが入っていてどのようになって欲しいのか提示していただけますでしょうか?

kumikokiku
質問者

補足

言葉足らずで申し訳ございません。 サンプルイメージを添付しましたので宜しくお願いします。 誕生月毎 1月生まれなら1月生まれの中で年齢が高い順に順位をつける方法が あればご教示いただきたく宜しくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • maiko0318
  • ベストアンサー率21% (1483/6970)
回答No.1

誕生日欄があればそれでソートすれば?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル年齢早見表

    エクセルで年齢早見表を作りたいと思います。 西暦、元号、年齢、干支と十二支が自動更新されるようにしたいのですが関数はどうすればいいでしょうか。干支の関数などありますか? 19XX年、昭和XX年、XX歳、丑、庚というような具合にしたいです。

  • 年齢早見表

    エクセル2003で1900年以前の早見表を作りたいのですが 関数では1900年以降はできますが、1900年以前の作り方を 教えてください。

  • 年齢早見表

    年齢早見表が欲しいのですが、何処でもらえますか?例→(西暦)2010 (和暦)22 (年齢)1 電車などの定期券位の大きさでカレンダーは、本屋で見るのですが、早見表がなかなか見当たらないのです。誰かご存知の方教えて下さい。

  • 年齢早見表の作成

    社内のWEBサイトを担当しております。 サイト内で年齢早見表を表示作成したいのですが、 以下の条件で、サンプルもしくはプログラム作成方法を 教えていただけますでしょうか。 ・西暦、和暦の生年月日を入力すると今年の誕生日の年齢が表示される ・上記の条件で、今年の年齢とかぞえ歳が表示される ※フリー素材でしたら本当に有難いです。

  • EXCEL 年齢早見表 年代ごとに塗りつぶし

    よろしくお願いいたします。 先日EXCELで年齢早見表を作りました。 YEAR関数等を使いEXCELの表を開くと、開いた日付(2013年)であれば、平成25年生まれの人は0歳。来年開くと平成25年生まれの人は1歳となるようにしました。110歳から0歳まで一つの表になっています。 明治36年 110歳 1903 セルは3セル 明治37年 109歳 1904 ・・・・・・・・・・・途中省略します。 平成24年 1歳 2012 平成25年 0歳 2013 来年開くと 明治37年 110歳 1904 セルは3セル 明治38年 109歳 1905 ・・・・・・・・・・・途中省略します。 平成25年 1歳 2013 平成26年 0歳 2014 となるのですが、見やすくするために、明治・大正・昭和・平成年代ごとにその行全体を塗りつぶしをしたいのです。どうすればよいのでしょうか。お知恵をお貸しください。

  • エクセルで生まれの星座を誕生日から自動で表示したい

    エクセルで年齢早見表を作りたいと思います。 西暦、元号、年齢、干支とかはなんとかしたのですが星座を誕生日から検索する関数とかマクロとかが分かりません。 できるだけ簡単に分かる方法を教えてください! 星座占いはいろいろ種類があるかもしれませんが、TVの朝番組で星座ランキングとかしてる、12星座がターゲットです。 急ぎません。よろしくお願いします

  • 年齢早見表の干支が逆なんですが

    https://年齢早見表.jp/1907 ここの干支が逆のようですが、何でこのような逆の順序になっているのでしょうか?

  • スケジュール帳の郵便料金表と年齢早見表のデータ

    コミケのイベント用にオリジナルのスケジュール帳を売りたいと思っています。 現在、作りこみを行っているのですが、 スケジュール帳と言えば、郵便料金表や年齢早見表など後方にお役立ちページが良くあると思うのですが、まさに私も載せたいと思っています。 ですが、これを一から作成するのは凄く骨の折れる作業です・・・ また、今手元にある市販のスケジュール帳を元に作成することはできますが、 個人レベルとは言え、売りものなので、そのものをまねて作りこむのには抵抗があります・・ エクセルデータ等々でフリーで配布されているところがあれば教えていただきたいです。

  • excelで年齢を更新する

    excelで  名前 生年月日 年齢      太郎 1980/1/1  23 上記のような表を作成したいのですが どのような関数を使えば出来るのでしょうか 年齢はパソコンの時計に連動して自動更新されるようにしたいです 具体的な計算式を教えてください

  • <エクセル>誕生日から年齢 ちょっと問題が・・

    はじめまして。 エクセルで、誕生日から現在の年齢を導きたいのですが、どうすればいいですか? DATEIF関数を使えばいいとは思うのですが、一つ問題があって、 誕生日が、 S30-1-1  というふうに、全角文字列で入力されているのです(TT) 途中に列が挿入されても全然かまいませんので、 なんとか    A     B    C   名前   誕生日  年齢 のような形にできないでしょうか? よろしくお願いします。

このQ&Aのポイント
  • faxの設定方法と送受信設定の注意点について解説します。電話機がプリンターの近くになくてもfaxの送受信設定は可能です。
  • faxの設定方法と送受信設定の注意点について詳しく説明します。電話機の位置に制約はありません。
  • faxの設定方法と送受信設定の注意点について簡潔に説明します。電話機の位置に制限はありません。
回答を見る

専門家に質問してみよう