- ベストアンサー
【EXCEL・関数】2つの表を元にカウントする方法
- 作業別の表を同じシートに作りその日に作業をした人数を数えたいです。
- 作業別の合計人数をカウントしたいのですが、その関数がわからず困っています。
- 0.5人としてカウントする方法がわかりません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
続けてお邪魔します。 >作業者の列に空白がありますと、エラーが・・・ について実は投稿した後、当方も気になっていました。 作業者の行にデータがない場合は「0」で割ってしまうこととなり、エラーになります。 そこでもう一度数式を載せておきます。 前回の表配置と一緒だとします。 今回はB6セルの数式(列方向にオートフィルでコピー) → B6セルを選択 → コピー → B13セルに貼り付け → オートフィルでコピー・・・ で良いようにしています。 少し長くなりますが、B6セルに =COUNT(B3)/IF(COUNT($B3:$E3),COUNT($B3:$E3),1)+COUNT(B4)/IF(COUNT($B4:$E4),COUNT($B4:$E4),1)+COUNT(B5)/IF(COUNT($B5:$E5),COUNT($B5:$E5),1) という数式を入れてみてください。 ※ 表が同じような配置で下へ続いている場合はすべての表の「計」行B列にコピー&ペーストでOKです。 こんな感じではどうでしょうか?m(__)m
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
No.1です! 補足を読ませていただきました。 一つ疑問があるのですが、 >また、この表がS作業、Z作業…というように増えることが予測されます・・・ とありますが、 前回の質問では表が二つだけなので重複分は0.5(1/2)と計算しましたが、 仮にX・Y・S・Z作業すべてに従事した場合は、 1/4 つまり 0.25 と計算すればよいのですかね? 一応そういうコトだとしての一例です。 お示しの表は下へ伸びているようですが、その表示では表が増えるたびにすべての表の数式をやりかえる必要があります。 (列すべてを選択した場合は循環参照となってしまうため) そこでこちらの都合で勝手に↓の画像のような配置にしてみました。 この場合は列方向にいくらでも表を増やすことが可能です。 B6セルに =COUNT(B3)/COUNT($B$3:$E$3)+COUNT(B4)/COUNT($B$4:$E$4)+COUNT(B5)/COUNT($B$5:$E$5) B13セルに =COUNT(B10)/COUNT($B$10:$E$10)+COUNT(B11)/COUNT($B$11:$E$11)+COUNT(B12)/COUNT($B$12:$E$12) という数式を入れ、それぞれ列方向にオートフィルでコピーしています。 ※ 表の配置はどうしても変更できない場合は別途考える必要があります。 ※ 今後作業種が増えても対応でき、オートフィルでコピーするだけで良いように勝手に考えてみました。 的外れならごめんなさいね。m(_ _)m
お礼
できました (T.T ) 二度もお手間をかけさせてすみません。 私の説明不足にもかかわらず想像以上の解答をしていただいて… おかげでなんとかなりました。本当にありがとうございました
補足
すみません… 何度も追加要求のようで大変差し出がましいのですが、教えてくださった関数ですと、作業をしない人、つまり作業者の列に空白がありますと、エラーがでてしまいます。これも私の説明不足でしたが、作業する方も今後10人程になりますので、関数自体も非常にダイナミックなものになってしまう恐れがあります。 もしお時間がお有りのようでしたら、今一度ご教授の程お願いします。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 表の配置を工夫すればオートフィルで数式のコピーでOKのような感じがしますが・・・ お示しの配置通りとしての一例です。 ↓の画像のような配置にしてみました。 B7セルに =SUMPRODUCT((B4:B6<>"")*(D4:D6<>""))*0.5+SUMPRODUCT((B4:B6<>"")*(D4:D6="")) D7セルに =SUMPRODUCT((B4:B6<>"")*(D4:D6<>""))*0.5+SUMPRODUCT((B4:B6="")*(D4:D6<>"")) という数式を入れています。 ※ ごく単純にやってみましたので、他に良い方法があればごめんなさいね。m(_ _)m
お礼
できました!!ありがとうございます! とても参考になりました!!
補足
度々申し訳ございません… 表の配置ですが実際は [X作業] 1月1日 A 20 B 5 C 計 1.5人 [Y作業] A 10 B C 30 計 1.5人 といういうような配置になっています。 また、この表がS作業、Z作業…というように増えることが予測されます。 教えてくださった関数で表を増やしてみたところ私の理解不足のせいで上手く利用できなくなってしまいました。どうしたらよいでしょうか。 聞いてばかりで成長も見込めませんが、何分頭も固いもので… 時間がありましたら是非教えてください。
お礼
何度も何度も我儘に付き合っていただいて本当にありがとうございます。 今度こそ思い通りの表ができあがりました。 私の拙い説明を綺麗に汲み取って戴いたどころか、素早いレスポンスもしていただいて…感服いたします… 本当にありがとうございました