【EXCEL・関数】2つの表を元にカウントする方法

このQ&Aのポイント
  • 作業別の表を同じシートに作りその日に作業をした人数を数えたいです。
  • 作業別の合計人数をカウントしたいのですが、その関数がわからず困っています。
  • 0.5人としてカウントする方法がわかりません。
回答を見る
  • ベストアンサー

【EXCEL・関数】2つの表を元にカウントする方法

その日に作業をした人数(2つの表を元ととして)を数える関数がわかりません。 [X作業]      [Y作業]  1月1日      1月1日 A  20      A  10 B  5       B   C         C  30  計 1.5人     計  1.5人   上のような作業別の表を同じシートに作りその日に作業をした人数を数えたいです。 ただ、この例でいくと1月1日に作業をした人数は当然X、Y共に2人(合計4人)ですが、2つの作業をした人は、0.5人としてカウントしたいです。つまり、AさんはX作業とY作業をしているので、0.5人として数え、X作業・Y作業の合計人数を1.5としたいです。 それぞれ作業別の合計人数をカウントしたいのですが、その関数がわからず、現在のところ(とりあえず作業をしなかった日は空白にしたいので)、 =IF(COUNT(○○:○○)=0,"",COUNT(○:○))  という関数を利用しています。ここから上記のような0.5とカウントする方法が全くわからず困っています。 どうかご教授お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.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

p13dragb7aon
質問者

お礼

何度も何度も我儘に付き合っていただいて本当にありがとうございます。 今度こそ思い通りの表ができあがりました。 私の拙い説明を綺麗に汲み取って戴いたどころか、素早いレスポンスもしていただいて…感服いたします… 本当にありがとうございました

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

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

p13dragb7aon
質問者

お礼

できました (T.T ) 二度もお手間をかけさせてすみません。 私の説明不足にもかかわらず想像以上の解答をしていただいて… おかげでなんとかなりました。本当にありがとうございました

p13dragb7aon
質問者

補足

すみません… 何度も追加要求のようで大変差し出がましいのですが、教えてくださった関数ですと、作業をしない人、つまり作業者の列に空白がありますと、エラーがでてしまいます。これも私の説明不足でしたが、作業する方も今後10人程になりますので、関数自体も非常にダイナミックなものになってしまう恐れがあります。 もしお時間がお有りのようでしたら、今一度ご教授の程お願いします。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 表の配置を工夫すればオートフィルで数式のコピーで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

p13dragb7aon
質問者

お礼

できました!!ありがとうございます! とても参考になりました!!

p13dragb7aon
質問者

補足

度々申し訳ございません… 表の配置ですが実際は [X作業]        1月1日      A  20       B  5          C           計 1.5人  [Y作業]    A  10      B            C  30         計 1.5人  といういうような配置になっています。 また、この表がS作業、Z作業…というように増えることが予測されます。 教えてくださった関数で表を増やしてみたところ私の理解不足のせいで上手く利用できなくなってしまいました。どうしたらよいでしょうか。 聞いてばかりで成長も見込めませんが、何分頭も固いもので… 時間がありましたら是非教えてください。

関連するQ&A

  • Excelのカウント関数について

    Excelのカウント方法が分からなくて困っています。 どなたか教えて頂けると、大変助かります。 (Excel2003を使用しています) 下記の様な表があるとします。     A     B 1  3/1   Aさん 2  3/2   Bさん 3  3/3   Aさん 4  3/4   Cさん 5  4/1   Dさん 6  4/2   Bさん B列にはその日の来訪者の氏名が記入されていますが、 3月、4月単月毎に1日以上・2日以上・3日以上・4日以上来たそれぞれの人数を 重複する事無く、カウントする関数が知りたいのですが。 それと3月~4月の期間内に1日以上・2日以上・3日以上・4日以上来たそれぞれの人数を 重複する事無く、カウントする関数が知りたいのですが。 すみませんが、どなたか教えて下さいませ。

  • Excel2010関数 複数条件で人数カウント-2

    Excel2010で複数条件を指定して人数をカウントする関数を作成したいのですがどうにもうまく出来ず、お手上げ状態になっています。 やりたい事は出席人数のカウントです。 B列に名前が、C列に○印が入った表があります。 B列の名前は2行1列が結合されたセルに入力されています。 C列の○印は、B列の名前セル(2行)に対し、上行が午前中の出席、下行が午後の出席です。 その日の出席人数(午前か午後に○が入っている人、もしくは午前午後に両方に○が入っている人)をカウントしたいのですが、この時の条件として作業列は使わず、1つのセルで答えを出さなくてはいけないのです。 添付の図の場合、答えはA、B、C、F、I、Jの6人となります。 先日似たような質問をさせて頂きましたが 条件が変わってしまったので再度質問させて頂きました。 http://okwave.jp/qa/q7833908.html 関数で、しかも作業列を使わず1つのセルでカウントできますでしょうか? お分かりになる方がいらっしゃいましたら教えて頂けると嬉しいです。 どうぞよろしくお願いいたします。

  • [Excel]エクセルデータのカウント

    はじめまして. エクセルデータの値が重複した場合にその数をカウントをしてくれないか調べています. 一つの値に対し,範囲内で同値だった場合のカウントはCOUNT関数を使えば良いということはわかりました. しかし,2つセルの値を一セットで考えたときのカウント方法がわかりません. 例をあげると 授業Aと授業Bを行って,授業を受けた生徒はセル内に1,受けていない生徒は0,病欠は2と記入するとA列とB列にそれぞれ1か0が生徒の人数分入ってます. そして,AとBの授業を受けた生徒(=AとB両方に1が入ってる)の人数は何人かというのをそれぞれ知りたいのです. 要は下のような感じです. A B count 1 1 3 1 1 3 1 2 1 1 0 2 1 1 3 1 0 2 2 1 1 何か良い方法はないでしょうか

  • EXCEL2003{=Count(IF・・出来ない

    EXCEL2003 配列関数の結果がうまくいきません Sumの場合はうまく合計が出ます {=SUM(IF(A2:A8="Q大学",C2:C8,""))} Countにするとカウントされるフィールドが、条件範囲となってしまい カウントしたいフィールドでカウントできません 『目的:Y大学で点数が入っている件数を求めたい』 {=Count(IF(A2:A8="Y大学",C2:C8,""))} 詳細は添付画像の通りです 他に配列関数を使わない方法(関数の組み合わせなど)があるかと思いますが・・・ 今回は、配列関数での解決方法をお願いします

  • <EXCEL>月別にデータ数をカウントする方法。

    以下の表があるとします。 A列   B列 2006/6/1     123  2006/5/1     345 2006/6/13     234     2006/7/24   523 2006/9/12   912 2006/4/3   145 2006/5/5   872 この表から、月毎に、データが何件入力されているかを関数でカウントしたいと思っています。データの内容はランダムで、特に番号などは決まっていません。 C列に4月は何件、5月は何件というように表示したいのですが、日は関係なく月ごとにカウントするにはどのようにすればよいでしょうか。

  • 日付をカウントした後にその列の金額を合計する関数

    下記のような表があります。まずA列の10月の件数をカウントしたい。 次にカウントした(抽出した)もののB列の数字を合計したい。 件数をカウントするものはCOUTIF関数で出来たのですがそこで 抽出されたものを合計する関数がわかりません。ここでオートフィルタ を使用するものは検索できたのですが出来れば関数を使用して 合計値を出せればと思っています。 お分かりになる方がいらっしゃいましたらお教えください。 よろしくお願いいたします。   A    B 1 10/1 30 2 10/2 10  3 11/1 20 4 11/2 10

  • COUNT関数で0.5カウントはできますか?

    出勤表をエクセルで作成しています。 A   B     C     D  1日  出     出     出 2日  半日欠勤  出     出 3日  出 4日  半日欠勤  出    休暇 5日  半日欠勤  半日欠勤  出 6日  休暇    出     半日休暇 ・ ・ ・ 上記の表から、 B列は、出=2,半日欠勤=1.5,休暇=1 という関数を組みたいのです。 カウント関数で、"半日欠勤"=0.5として数える 事はできるのでしょうか? (半日*はすべて0.5とカウントします) カウント関数でなくても0.5を返すする方法が ありましたら教えてください。 よろしくお願いします。

  • Excel2010 関数 複数条件で人数カウント

    Excel2010で、複数条件を指定して人数をカウントする関数を作成したいのですが うまくできません。やりたい事は、 Sheet1に、1行につき1名の名前(B列)と、○印(C列)が入った表があります。 Sheet2に、2行につき1名の同じ名前(B列)と、○印(C列)が入った表があります。 Sheet2のC列に○印が入った人が何人か知りたいのですが、この時の条件として Sheet1で○が入っている人で、なおかつSheet2でも○が入っている人、をカウントしたいのです。 添付の図の場合、答えはAさん、Cさん、Jさんの3人となります。 下のような式を作ってみたのですが、Sheet2が2行になっているためダメでした。 =SUMPRODUCT((Sheet1!C2:C11="○")*(Sheet2!C2:C21="○")) 関数でカウントできますでしょうか? お分かりの方いらっしゃいましたらご教示ください! よろしくお願いいたします。

  • 数字をカウントする関数を教えて下さい。

    関数についてお聞きします。 A列に数字と空欄が入っています。数字は0、1~20です。 B列に"0"と空欄を除いた数字をカウントしたいです。 例 A B 1 1 0  1 2    4 3 0  2 4 このような感じです。 COUNT関数を使っているのですが、"0"をカウントしてしまいます。 よい案をお願いします。  

  • 【Excel】特殊な表のカウントについて

        6/1   6/2   6/3   6/4   6/5  ……     A B  A B  A B  A B  A B 田中 ○ ○  ○ ×  ○ ○  × ×  × ○ 佐藤 ○ ×  ○ ×  × ○  × ×  ○ × 鈴木 × ○  ○ ×  ○ ○  ○ ○  ○ ○ 上記のように1日2列のデータを横並びに持つ表において、 個人毎にAのみ○の日数、Bのみ○の日数、両方とも○の日数を カウントしたいのですが、良い方法はありますでしょうか。 田中さんの場合、Aのみ1、Bのみ1、両方2とカウントしたいです。 よろしくお願いいたします。

専門家に質問してみよう