• 締切済み

エクセル 関数

エクセルで社員の現在の年齢を出し、それを元に部署ごとの平均年齢を出す為の関数式を作っています。 初心者の為、なかなか難しくて出来ません。 どのたか助けて頂けませんでしょうか?

みんなの回答

noname#204879
noname#204879
回答No.6

既出ですが、ピボットテーブル(ピボテ)に依るのが最も簡単かと。 ここでは、ピボテの結果例(範囲 F3:G8)と、その元としたデータベース(社員情報)例だけを示しておきます。    A      B      C    D  E   F    G 1  部署  社員名     生年月日 年齢 2  総務部 清原 和博   67/08/18  40 3  総務部 小野寺 麻衣  75/11/09  31   平均/年齢 4  総務部 岡田 武史   56/08/25  51   部署    合計 5  総務部 稲垣 吾郎   73/12/08  33   財務部   48.8 6  総務部 伊藤 蘭    55/01/13  52   人事部   40.8 7  人事部 今井 美樹   64/04/14  43   総務部   41.4 8  人事部 梅宮 アンナ  72/08/20  35   総計    43.1 9  人事部 小倉 優子   83/11/01  23 10 人事部 賀来 千香子  61/10/17  45 11 人事部 東 ちづる   60/06/05  47 12 人事部 明石家 さんま 55/07/01  52 13 財務部 落合 博満   53/12/09  53 14 財務部 大仁田 厚   57/10/25  49 15 財務部 有森 也実   67/12/10  39 16 財務部 稲垣 潤一   53/07/09  54 D2: =DATEDIF(C2,TODAY(),"Y") [合計]が該当部署の平均年齢で、「総計」の 43.1 は全部署の平均年齢を示しています。

ayamyu
質問者

お礼

ご回答、有難うございます! ピッポットテーブルって、使った事が無いので、実はよく解らないのですが、早速チャレンジしてみます。 またよろしくお願い致します。

noname#140971
noname#140971
回答No.5

社員名________部署名___先年月日_____年齢1___年齢2___年齢3___現在 鈴木_一郎____総務______2004/2/29________0__________1_________1___2005/2/28 <--- 不一致 田中_子_______総務______2004/3/1__________0_________0_________0___2005/2/28 木下_純_______営業______2004/2/28_________1_________1_________1___2005/2/28 鈴木_一郎____総務______2003/2/28_________1_________1_________1___2004/2/28 田中_良子____総務______2003/2/28_________1_________1_________1___2004/2/29 木下_純_______営業______2003/2/28_________0_________0_________1___2004/2/27 <--- 不一致 年齢1=DATEDIF(C2,G2,"Y") 年齢2=ROUNDDOWN((G2-C2)/365,0) 年齢3=GetAge(C2,G2) Public Function GetAge(ByVal Birthday As Date, ByVal Hiduke As Date) As Integer   GetAge = DateDiff("yyyy", Birthday, Hiduke) + (Format(Birthday - 1, "mm/dd") > Format(Hiduke, "mm/dd")) End Function 3つの計算式では、それぞれに計算結果が微妙に異なります。 一体、どれが正解かの自信は全くありません。

ayamyu
質問者

お礼

ご回答ありがとうございました。 3つの計算式・・・それぞれ、チャレンジして見ます! またよろしくお願い致します。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.4

年齢(?歳?ヶ月)は、A1が誕生日なら =TEXT(DATEDIF(A1,TODAY(),"Y"),"0歳;;")&TEXT(DATEDIF(A1,TODAY(),"YM"),"0ヶ月;;") 年齢の平均は =TEXT(DATEDIF(AVERAGE(A1:A100),TODAY(),"Y"),"0歳;;")&TEXT(DATEDIF(AVERAGE(A1:A100),TODAY(),"YM"),"0ヶ月;;") 部署がバラバラになっている場合は 月数=DATEDIF(SUMIF(B1:B100,"部署名",A1:A100)/COUNTIF(B1:B100,"部署名"),TODAY(),"M") 平均年齢=TEXT(INT(月数/12),"0歳;;")&TEXT(MOD(月数,12),"0ヶ月;;")

ayamyu
質問者

お礼

ご回答、ありがとうございました! 関数辞典を見ながら内容を理解出来るように頑張ります。 おかげ様で無事に処理が出来ました。 本当に、ありがとうございました!!!

  • yuuyu555
  • ベストアンサー率0% (0/0)
回答No.3

年齢を生年月日から出すのであれば↓の式で出ます。 但し、○ヶ月は切り捨てされます =ROUNDDOWN((TODAY()-A1)/365,0) A1は生年月日のセルです

ayamyu
質問者

お礼

ありがとうございます。 使ったことの無い関数だったので勉強になりました。 またよろしくお願い致します!!!

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

まずDATEDIF関数で各社員の満年齢を求めて、ピボットテーブルで部署毎の平均を求めるのが良いでしょう 仮にA列に部署、B列に氏名、C列に生年月日があるとしましょう。 1行目はタイトル行(タイトル行はピボットテーブルを使用するときに必須)で、2行目から下がデータ行になります。 D2(一番目の社員の行)に  =DATEDIF(C2,TODAY(),"Y") と入力して、下方向にコピーします。これが本日時点の満年齢です。 次に部署ごとの平均年齢を出すために、1行目のタイトル行から一番下の社員の行のA列~D列の全てを選択します 「データ」→「ピボットテーブルとピボットグラフレポート」を選択しウィザードを開きます。 1/3画面は何も変更せず「次へ」を選択します。2/3画面ではデータ範囲を選択しますが、先に範囲を選択しているので、ここも何も変更せず「次へ」を選んでください 3/3画面で「レイアウト」ボタンをクリックします。するとレイアウト画面が開きますから、画面右側にある「部署」ボタンを「行(R)」の位置にドラッグします。「部署」の実際の名称はシートの1行目に入力したタイトル名がそのまま表示されます。 次に「満年齢」を「データ(D)」の位置にドラッグすると「データの個数/満年齢」と表示が変わります。そのボタンをダブルクリックすると計算方法が「合計」「平均」…などたくさん表示されますから、「平均」を選択してください 「OK」で3/3画面に戻り、「完了」で部署毎の平均年齢が求められるはずです

ayamyu
質問者

お礼

ご回答ありがとうございます! ピッポットテーブル?と言う物を使った事が無いのですがチャレンジしてみます。 関数に関して勉強中なので1つ1つ考えながら、やってみます。 本当に、ありがとうございました。 またよろしくお願い致します。

  • bari_saku
  • ベストアンサー率17% (1827/10269)
回答No.1

A列1~100部署、B列1~100に年齢が入っているとして、総務課の人の平均年齢を出すなら =SUMIF(A1:A100,"総務課",B1;B100)/COUNTIF(A1:A100,"総務課")

ayamyu
質問者

お礼

ご回答ありがとうございました。 IFって、いろいろ使えるんですね。初心者なので関数辞典を片手に悩んでました。 またよろしくお願い致します。

関連するQ&A

  • Excelの関数について

    EXCELの関数についてお知恵を拝借できればと存じます。 以下のようなEXCELの社員データベースを取り扱っているのですが、これを関数を使って別の表(役職・男女・年齢別人数表)に人数を自動的に落としこみたいのです。countif関数など基本的なことはわかっているのですが、いろいろ組合せないと出来ないようで、ここから先に進めず困っております。 ◆社員データベース A列   B列   C列    D列 氏名   年齢  役職   性別 山田子花  25   管理者   女 鈴木郎一  35   管理者   男 佐藤呂歌  60   一般社員  男 三井秀喜  44   管理者   男 ◆年齢・役職・男女別人数表      管理者 年齢  男  女 60 (関数) (関数) 59 (関数) (関数) 58 (関数) (関数) ・ ・ ・      一般社員 年齢  男  女 60 (関数) (関数) 59 (関数) (関数) 58 (関数) (関数) ・   ・ ・ (関数)というところに関数を入れておいて、自動的にカウントできればと思っているのですが、データベースのB列(年齢)の該当の年齢をカウントするだけではだめで、一般社員/管理者、男/女という見極めも必要です。この辺が複雑でどう関数にしたらよいのかがわかりません。 どうぞお助けをお願い致します。 ご不明な点があれば質問をくださいませ。

  • エクセル関数の減算について

    エクセル初心者で解らないのですが・・・ エクセルで関数を使って減算式を作りたいのですが減算の関数名が解りません。 どなたか教えて下さい。

  • エクセル関数の書き方、入力方法

    エクセル関数の初心者です。関数の書き方で下記の内容について教えて下さい。 例えば、1行のセルA1~P16の表に入力された数値(1~3桁)で、少ない数値を5個を自動的に抽出し、その平均値を出す関数の書き方が分かりません。 但し、表中に同じ少ない数値が複数有る場合、その複数を含め5個抽出する式としたいのですが、どのような関数とすればよいでしょうか。

  • エクセルの関数で、、

    エクセル初心者です。 ある列の中に、、人名が1000人並んでいるとします。 その中で田中さんが何人いるかを計算する式は、どのように作る(どの関数を用いる)のでしょうか。

  • エクセルにて、この関数はありますか?

    エクセルにてt検定(ウェルチの検定)を行いたいと思います。 ツール→分析ツールより、t検定・分散が等しくないと仮定した2標本による検定を行おうとしましたが、手持ちのデータが結果のみ(データの平均、標準偏差、分散)なので、行うことができません。 そのため、公式を元に計算しようかと思うのですが、手入力で作成すると間違えそうなので、簡単な関数でこれがないか調べていますが、見つかりません。 平均の検定:異分散の場合(ウェルチのt検定)の、「t0」と「v」 http://ja.wikipedia.org/wiki/T%E6%A4%9C%E5%AE%9A どなたか、関数を知っている、または、この公式のエクセル用に演算した式を知っている方がいましたら、教えてください。

  • 【エクセル】平均を求めたセルとIF関数について

    エクセル初心者です。 (1)とある金額の平均を関数を使い表示させたセル と (2)手打ちで金額が入力されたセル があります。 (1)と(2)について、IF関数を使い 平均された金額と手打ちで入力された金額が同じであれば、〇という表示をさせたいと思っています。 しかし、このままIF関数を使おうとすると、平均を求めているセルが 小数点まで入っているためか、うまく式が反映されません。 平均の金額を、小数点を表示させない形式で別のセルに貼り付けて IF関数を使う方法はありますか? また、もっとスムーズな方法があれば教えてください。

  • エクセルの機能について

    エクセルの機能について エクセル初心者です。 現在会社で利用しているエクセルの機能が不明でネットで調べたのですが わかりません。 (作成した人は退社した為、作成方法については調べる事ができませんでした) リスト形式で社員名を選択すると、部署名、所属長の名前が任意のセルに自動 入力される様になっているのですが、この機能は関数もしくはVBA、マクロで くまれている物なのでしょうか? 要はどういった物かわかれば、新入社員がふえた為、追記したいのですが どこをいじればいいのか不明なのです。 関数であれば、別シートに社員名とか記載されているはずですが、 見当たりません。 つたない文章で伝わりにくい部分もあるかと思いますが、ご教授お願いします。

  • エクセルの関数について質問です

    エクセルの関数を使って借入金などの残高を出す様に言われました。 元金から毎月の支払額が減っていくようにしたいです。 使う関数はNOWらしいのですが… 100万借りて毎月10万ずつ返していくとしたらどういう式になりますか? 支払期間は2008年3月~12月だとします。 それと残高を出す為にはこんな項目が必要っていうのがあれば 教えて下さい。 初心者なので、説明不足な所があるかもしれませんが よろしくお願いします。

  • エクセルの関数、おしえてください!

    エクセルの関数、おしえてください! ゼロ%以外の%の平均を出したいのです。たとえば 50% 20% 0% 70% 0% 30% 平均42.5%・・・というふうに。 ふつうに平均を出すと、28.3%となってしまうのです・・・。 よろしくおねがいします!

  • エクセルの関数で平均年齢の出し方を教えてください。

    エクセルでTODAYを元に年齢を =DATEDIF(H5,$J$3,"Y")&"歳"&DATEDIF(H5,$J$3,"YM")&"ヶ月" のようにして○歳○ヶ月というようにセルに表示されるよう関数 で求めています。 この○歳○ヶ月のセル列の最後に平均年齢を求めたいのですが、 =AVERAGE(範囲)では求められないので どのようにすえば求められるのか教えていただけないでしょうか? 宜しくお願いたします。

専門家に質問してみよう