プロが教える店舗&オフィスのセキュリティ対策術

有休管理エクセルを現在、作成しています。
添付画像はシステムでCSV出力したのを貼り付けたものです。有休の取得日・付与・失効など個人の有休に関する情報が全て出てくるようになっています。(この方法でしか出力できません)
これを取得日のみ個人ごとに別シートにもってきたいので、添付画像のD列に取得日のみ表示するようにしています。

ここで、別シートには行に社員番号・氏名、列に取得日を追加していく形で作成したいので、
ピポットテーブルを使って試してみようと思ったのですが、画像のように出力したデータは例えば同一人物が2日有休を取得していると2行同じ名前が出てきます。(C列参照)

この場合、ピポットテーブルでの集計は難しいのでしょうか?(初心者です)

質問者からの補足コメント

  • 画像添付し忘れてました。。

    「エクセル・ピポットテーブルでできる?」の補足画像1
      補足日時:2020/09/15 11:35
  • 銀鱗様

    とてもご丁寧に分かりやすく教えていただき、本当にありがとうございます!!
    ただ一点うまくいかないところがあり。。
    実際のデータを手順通りに貼り付けた際に、列ラベルにあった「月」がなくなってしまったのですが何故でしょうか。

    「エクセル・ピポットテーブルでできる?」の補足画像2
    No.12の回答に寄せられた補足コメントです。 補足日時:2020/09/24 15:18

A 回答 (16件中1~10件)

今気付きました。



フィールド項目にチェックを付けて「月」を表示させた後、
各項目をどこに配置するかの説明が抜けていましたね。

列に「月」
行に「名前」「従業員No.」
値に「有給取得日」

です。

なお、お気づきとは思いますが、ここでの回答は
 回答    添付画像
 名前    name
 従業員No.  No.
 有給取得日 date
です。
「エクセル・ピポットテーブルでできる?」の回答画像12
この回答への補足あり
    • good
    • 0
この回答へのお礼

とてもご丁寧にありがとうございました。
銀鱗様宛に捕捉コメントを付けましたのでご確認いただけますでしょうか。

お礼日時:2020/09/24 15:19

No14です。

2020/09/24 15:21のお礼へのコメントです。
すでに、銀鱗さんの方法で対応可能なところまで来ていらっしゃるようなので、ご質問者にとっては余計なお世話なかも知れませんが、一応解決策をお示しします。
>その反映が取得日のみを見てカウントがされず、有休付与や失効の際にも社員コードの行が追加されてしまう
とのことですが、ご質問者さんが例示された表の画像にはF列に日付かあり、ここには「有給付与」「失効」の日付も含まれていますが、C列には「取得日」があり、そこには「有給付与」「失効」の日付は含まれていないように見えます。
つまりC列を使ってピボットテーブルを作成すれば、「有給付与」「失効」の日付は含まれないはずのように思えます。
ただ、C列、F列とも日付データであり判りにくいので、「有給付与」「失効」が含まれないようにするには、「取得(数)」の有無を加えて判断するようにすれば問題は解決します。
I列に「取得(数)」があるとすれば
前回お示ししたE2に記述すべき数式を以下のものに修正します。
=IF(I2>0,"取得日"&COUNTIFS($A$2:A2,A2,$I$2:I2,">0"),"")
これを下方向にコピーします。
こうしてE列に「取得日1」、「取得日2」・・・を表示させてからピボットテーブルを作成すれば、「有給付与」「失効」の日付は含まれないものが作成されるはずだと思います。
    • good
    • 0

2020/09/24 15:18 の補足への返答です。



「月」が無くなってしまったという事は、
実際のデータを貼り付けるのが早かったのではないでしょうか。
ダミーデータがある時点でピボットテーブルを構成していなかったのだろうと推測します。
    • good
    • 0

No.13です。


大変失礼しました。前回お示ししたE2へ記述する数式
=IF(C2<>"","取得日"&COUNTIF($B$2:B2,B2),"")は同姓同名の社員が存在する場合、区別ができません。
社員IDには重複はないと考えられますので
=IF(C2<>"","取得日"&COUNTIF($A$2:A2,A2),"")
に訂正いたします。
    • good
    • 0

既に銀鱗さんが丁寧に回答されておられますが、ご質問者の意図はもっと単純なものではないかと推測し、ピボットテーブルを活用した以下のような手順を考えてみました。


(1)添付画像①のように、「年月」の隣に「列見出し」という列を挿入して、E2を例にとれば「=IF(C2<>"","取得日"&COUNTIF($B$2:B2,B2),"")」という数式を入力し、下方向にオートフィルでコピーします。
(2)添付画像①の薄いブルーの範囲でピボットテーブルを作成します。社員ID、氏名を「行」エリアに、「列見出し」を列エリアに、「取得日」を「値」エリアにプロットします。
(3)ピボットテーブルの1や2の数字になっている部分を右クリックして、「値フィールドの設定」を選択します。
(4)多分「データの個数」が選択された状態になっていると思われるので、これを「合計」に変更します。
(5)このままだと、日付形式ではなく日付のシリアル値が表示された状態なので、シリアル値が表示される範囲をすべて選択して、右クリックし「セルの書式設定」を選択し、さらに「日付」を選択して日付形式にします。
(6)添付画像②のような表が完成します。(ご質問者のイメージではないかと推測)
(7)このままだと、空白セルもカウントされたピボットテーブルになっているので添付画像の矢印部分の列を非表示にするなどして見映えを整えます。
「エクセル・ピポットテーブルでできる?」の回答画像13
    • good
    • 0
この回答へのお礼

ありがとうございます!
ただ一点問題があり、取得日1、取得日2などが表示されますが
その反映が取得日のみを見てカウントがされず、有休付与や失効の際にも
社員コードの行が追加されてしまうので、その関係でうまくいかなかったです;;

お礼日時:2020/09/24 15:21

・・・追記・・・



集計方法と表示に関しての説明を忘れてました。
これを指定しないと同じ列に「名前」と「従業員No.」が表示されて見づらくなります。

行項目の「名前」項目をクリックして「フィールドの設定」を選んでください。
 「小計とフィルター」では「なし」
 「レイアウトと印刷」では「アイテムのラベルを表示形式で表示する」
を選択設定してください。
「エクセル・ピポットテーブルでできる?」の回答画像11
    • good
    • 0

・・・余談・・・



同姓同名の方がいても、従業員No.で区別されますので大丈夫です。
「エクセル・ピポットテーブルでできる?」の回答画像10
    • good
    • 0

出来上がりです。


表の見た目を好みに修正しましょう。

あとはフィルターを使って表示する従業員を指定するなど便利に使用してください。
「エクセル・ピポットテーブルでできる?」の回答画像9
    • good
    • 0

続いてA列からC列に実際のデータを貼り付けてください。


貼り付けたら、ピボットテーブルを右クリックして「更新」を選んでください。
続いて「従業員No.」順に並べ替えます。

「従業員No.」の列の一番上のセルを選択。
「行ラベル」のセルにあるボタンをクリック。
「昇順」を選択。
「エクセル・ピポットテーブルでできる?」の回答画像8
    • good
    • 0

ピボットテーブルを挿入したら、フィールドの設定です。


「名前」「従業員No.」「有給取得日」の項目にチェックを付けてください。
この3つにチェックを付けると自動で「月」の項目が追加されますので、ここにもチェックを付けましょう。
「エクセル・ピポットテーブルでできる?」の回答画像7
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!