• ベストアンサー

Excelで工数、勤怠管理、何月何日に誰がどこへ

end-uの回答

  • end-u
  • ベストアンサー率79% (496/625)
回答No.4

>できれば、ピボットテーブル、...を使って作りたいです。 という点に反応してみました。 Sub test()   ActiveWorkbook.Names.Add "database", "=INDEX($A:$A,COUNTA($A:$A)+1):INDEX($1:$1,COUNTA($1:$1)+1)"   ActiveWorkbook.PivotCaches.Add(xlConsolidation, "database").CreatePivotTable("").AddFields "列", "行", "値" End Sub データ範囲が拡張しても対応できるように「名前定義」を設定して、 [Alt][d][p]でConsolidation Type のピボットテーブルを作成するマクロです。 試す場合は、データが在るSheet1をアクティブにして実行してください。 Sheet1のデータはA列に日付、1行目に担当者、かつA1セルはデータが何も入力されていない事が前提です。 手作業の場合 1)データが在るSheet1をアクティブにして[ctrl]+[f3]、「名前の管理」「新規作成」、  「名前」に database 「参照範囲」に =INDEX($A:$A,COUNTA($A:$A)+1):INDEX($1:$1,COUNTA($1:$1)+1)  で[OK]。  (A1セルに項目名がある場合は =INDEX($A:$A,COUNTA($A:$A)):INDEX($1:$1,COUNTA($1:$1)) で良いです) 以上が可変範囲の名前定義。 2)[Alt][d][p]で「ピボットテーブルウィザード」、「複数のワークシート範囲」にチェックして[次へ] 3)「指定」にチェックして[次へ] 4)「範囲」に database [追加]、[完了] 5)できたピボットテーブル「列ラベル」の列フィールドを「行ラベル」へ。「行ラベル」の行フィールドを「列ラベル」へ。 6)「フィールドリスト」から値フィールドを「レポートフィルター」に追加する。 ..な流れでできます。 あとは体裁を整えればなんとかなるかと。

excel_march
質問者

お礼

ありがとうございます。 ピボットテーブルすごいです! 毎月毎月SUMやIF関数使ってた自分がバカらしく思えてきました。とにかくデータ入力だけは毎日しっかりやっていきます。ピボットテーブルはいつでも作成できますし。もっと極めたいと思いました。

関連するQ&A

  • Excelの2つのシートのデータ-を。。。。。

    1つのシートには 鈴木さん  住所・・・・ 山田さん  住所・・・・ 田中さん  住所・・・・ というリストが3000人分ほど入っています 別のシートには 鈴木さん  りんご 鈴木さん  とまと 鈴木さん  みかん 山田さん  りんご 田中さん  いちご 田中さん  とまと 田中さん  りんご 田中さん  みかん と、言った感じで同じ人物が縦書きで複数回登場します 実際はフルネームなので別人が重なることはありません で、です。 別のシートでも1枚目のシートにでもいいのですが 鈴木さん  住所・・・   3 山田さん  住所・・・   1 田中さん  住所・・・   4 と、列に2枚目のシートでの登場回数を反映させたいのです。 なにせ3000件あまり、手作業ではなく、関数を使ってする方法はないでしょうか、、、 もう少し欲張ると             りんご とまと みかん いちご  鈴木さん 住所 3    1  1   1 山田さん 住所 1       1 田中さん 住所 4    1  1   1   1 ってな事は、できませんか。    

  • エクセル 最新日付以外のデータを合計する

    下表があるとしまして、 氏名 日付 買上金額 鈴木 5月5日 10 鈴木 5月6日 60 鈴木 5月7日 100 鈴木 5月9日 400 田中 5月4日 100 田中 5月7日 200 山田 5月1日 600 山田 5月2日 200 山田 5月3日 300 1970 氏名毎に、最新日付以外の合計を計算したいのです。 この場合、鈴木さんが170 田中さんが100 山田さんが800の合計1070がそれぞれの氏名の最新以外データの合計となりますが、これらを自動的に計算できないでしょうか? よろしくおねがいします。

  • Excel(2010)で氏名の頻度の求め方

    Excel(2010)で、A列に縦に 山田 鈴木 田中 山田 鈴木 山田 というように氏名の並べてある表があるとします。この表で氏名の頻度が 山田 3 鈴木 2 田中 1 というように表示できる関数または方法があるでしょうか。 この表のように項目が少なければ 山田 鈴木 田中 というセルを作っておいて、VLOOKUP関数で求められますが、実際には約500行ありその中の氏名をすべて手作業で入力するのは大変ですので、重複なくすべての氏名を抜き出すのは実際的ではありません。 以上よろしくお願いします。

  • 関数で困ってます

    時間割を早く作りたいのですが、このような場合はどうしたらいいのでしょうか? 例 シート1は     1    2   3  田中1-1 1-2 1-3 伊藤1-2 1-3 1-4  山田1-3 1-4 1-1 鈴木1-4 1-1 1-2 シート2に      1  2  3 1-1 田中 伊藤 山田 1-2 伊藤 山田 鈴木 1-3 山田 鈴木 田中 1-4 鈴木 田中 伊藤 シート2の氏名のところがシート1を元に検索できないでしょうか? 誰かたすけてくれませんか?

  • エクセルのマクロについて

    パソコン初心者です。 たとえば シート1のA1に「田中」と入力する。 ボタンを押すとシート2のA1に「田中」と表示される。 次にシート1のA2に「山田」と入力する。 ボタンを押すとシート2のA1に「山田」と表示される。 次にシート1のA3に「鈴木」と入力する。 ボタンを押すとシート2のA1に「鈴木」と表示される。 このようにマクロを組むにはどのようにしたらよいのでしょうか? わかりにくくてすいません。

  • Excelの関数である月ごとの合計数を調べたい

    Excelの関数である月ごとのの登録数を調べたいのですがsheet2のB列にどのような関数を入れればよいでしょうか?ちなみにsheet1のA列は日付の書式です。 sheet1 A    |B 2004/3/1|山田 2004/3/2|鈴木 2004/4/2|金村 sheet2 A    |B 2004/3 | 2004/4 | 2004/5 |

  • エクセルで2つの条件を元に

    エクセル2007で名簿を作っています。 1ヶ月ごとにメンバーの順が変わります。 シート1(番号順に名簿を作りました)   A  B   C  1 1     山田 2 2     木村 3 3 副長 佐藤 4 4     鈴木 5 5 班長 田中 6 6     長田  シート2(こちらがメンバーに配る名簿です)   A   B  C   D 1 班長    1    3 2 田中    山田  鈴木 3 4 副長    2    4 5 佐藤    木村  長田 A2に田中,A5に佐藤を選んでくるのはvlookupで成功しました。 質問したいのは C列D列に上記の番号のようにシート1の名前を入れていきたいのですが,田中,佐藤の分を抜いた上で番号の若い順に選んできたいのです。 どのような関数をどのように使えば成功するでしょうか。  

  • 複数のシートのセル内容をひとつにまとめたい

    複数のシートのセル内容をひとつにまとめたいと思っています。 Sheet1        Sheet2      Sheet3 1 山田 ¥100  1 山田 ¥80  3 鈴木 ¥80 2 佐藤 ¥130  2 佐藤 ¥55  4 田中 ¥150 3 鈴木 ¥110  4 田中 ¥60 こんなデータを Sheet4 1 山田 2 佐藤 3 鈴木 4 田中 とまとめたいんです。 金額は必要ないので、番号と名前だけをまとめたいんです。 どうすれば良いか、教えてください。 よろしくお願いします。

  • (エクセル)INDEX、MATCHで全候補を反映

    初歩的な質問かもしれませんが、エクセル関数で分からないことがありましたので、教えてください。 sheet1のD8で以下の関数を入力しています。 =INDEX(Sheet2!$C$15:$C$500,MATCH(SUM(E8:P8),Sheet2!$AQ$15:$AQ$500,0)) (E8:P8にもデータ入力されています。) sheet1のD9には =INDEX(Sheet2!$C$15:$C$500,MATCH(SUM(E9:P9),Sheet2!$AQ$15:$AQ$500,0)) といった感じで、D8から下に同じ内容の関数を入力しています。 ここで、SUM(E8:P8)、SUM(E9:P9)、SUM(E10:P10)が同じ値だと、候補が複数あるにも関わらず、一つの候補がD8、D9、D10に入力されてしまいます。 例えば、人の名前であれば、D8:山田、D9:田中、D10:鈴木となってほしいところ、D8~D10で山田という結果になります。 山田、田中、鈴木ともに同じデータを持っているので、複数の条件で縛ろうとしても良い案が思いつきませんでした。 ROWで何とかできないかと試行錯誤しましたが、よく分かりませんでした。 出来ることならば、VLOOKUPなど他の関数ではなく、INDEX、MATCH関数で組み立てられたらうれしいです。 また、D8:鈴木、D9:山田、D10:田中といったように同じデータを持っているもの同士では順番はどのようになってもいいのですが、出来ることならsheet2で上の行から順番に入力されているどおりにD8~D10にも反映されていた方がいいです。 分かる方いましたら教えてください。 よろしくお願いします。

  • excelでできますか?

      1/1月   1/2火   1/3水   1/4木   1/5金 山田 ○   △    ○    △   × 田中 ○   ×    ×    ○   △ 鈴木 △   △    △    ×   × の様な表で 山田 ○  1/1月 1/3水  △  1/2火 1/4木 ×  1/5金 の様に個人の集計をとるようなこと、できますか?