- ベストアンサー
Excelで社員の残業時間をグラフにする方法は?
- 毎月、社員の残業時間を、各支店に分けてグラフにして提出する作業があります。
- シート1にデータを貼り付けるとシート2に自動的にデータが入り、グラフも完成するようにしたいです。
- ピボットテーブル以外で、他の方法があれば教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
支店名は既知(固定)ですから,まずシート2のA列はふつーに支店名を一覧しておきます ご利用のエクセルのバージョンが不明ですが,エクセル2007以降を使っているなら シート2のB2には =SUMIFS(Sheet1!$C:$C,Sheet1!$E:$E,$A2,Sheet1!$F:$F,B$1) のようにして集計させます。右に下にコピー貼り付けます。 言わずもがなですがあなたがA1形式じゃなくR1C1形式でエクセルを使っているなら,R1C1形式の数式で作成して下さい。 エクセル2003以前を使っているなら, =SUMPRODUCT((Sheet1!$E$1:$E$1000=$A2)*(Sheet1!$F$1:$F$1000=B$1),Sheet1!$C$1:$C$1000) などのようにして計算します。 集計表を元にグラフを描かせます。
その他の回答 (2)
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート2で支店名などを自動的に表示させるためにシート1のG列には作業列を設けG2セルには次の式を入力して下方にドラッグコピーします。 =IF(E2="","",IF(COUNTIF(E$2:E2,E2)=1,MAX(G$1:G1)+1,"")) シート2のA2セルには次の式を入力して下方にドラッグコピーします。 =IF(ROW(A1)>MAX(Sheet1!$G:$G),"",INDEX(Sheet1!$E:$E,MATCH(ROW(A1),Sheet1!$G:$G,0))) シート2のB2セルには次の式を入力しC2セルまでドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(OR(B$1="",$A2=""),"",SUMIFS(Sheet1!$C:$C,Sheet1!$E:$E,$A2,Sheet1!$F:$F,B$1)) 数値はシリアル値で表示されますので「セルの書式設定」から「表示形式」のタブの時刻から表示形式を選択します。 シート2の表の範囲を選択して「コピー」し、その後にシート3の画面で「挿入」タブから例えばグラフの「縦棒」を選択します。 グラフの外枠の画面が表示されますので枠内で右クリックして「貼り付け」を選択することでグラフが表示されます。 これでシート1のデータが変更されればグラフも自動的に変化します。
- aokii
- ベストアンサー率23% (5210/22062)
ピボットテーブル以外では難しいです。 シート1のシート名はSheet1と仮定しての場合で、 内勤OR外勤のデータが、内勤又は外勤、と記入されている場合ですと、 支店別の内勤の残業時間を出すには、シート2のB2セルに、以下の式を入れて下にドラッグコピー、 =SUMIFS(Sheet1!$C:$C,Sheet1!$E:$E,$A2,Sheet1!$F:$F,"内勤") 支店別の外勤の残業時間を出すには、シート2のC2セルに、以下の式を入れて下にドラッグコピー、 =SUMIFS(Sheet1!$C:$C,Sheet1!$E:$E,$A2,Sheet1!$F:$F,"外勤") シート2ができればグラフも自動で作れます。