• ベストアンサー

[エクセル]チェックしたセルに書かれている文字の合計

エクセルで年間の行事予定表を作っています。 4月          5月 -----------------  ----------------- 1日 月   空白  1日  木 v ------------------ ----------------- 2日 火   v    2日 金 空白 ------------------ ------------------  3日 水   v   3日  土 v  ------------------ ------------------ というように、横並びで4月から3月までの表です。 各月は日付、曜日、チェック欄の三列からなります。 (この表示フォーマットはかえられません) 各月ごとに、月曜日~日曜日ごとvがついた合計を 集計したいのですが、よくわかりません。 ご存知の方がいらっしゃいましたら、よろしくご教授ください。

  • airJ
  • お礼率78% (146/187)

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

  • ベストアンサー
  • s_yoshi_6
  • ベストアンサー率73% (1113/1519)
回答No.3

例えば4月のデータがA2:C32に入力されているとして、 4月の曜日別チェック数をB36:C42に表示させるとします。 B36:B42に「月」~「日」の文字が入力されているとして、 C36に =SUM(IF(B$2:B$32=B36,IF(C$2:C$32="v",1))) と入力した後に、「ShiftキーとCtrlキーを同時に押しながら」Enter キーで確定させると、月曜日のチェック数が表示されます。(式の両端に{ } が付きます。この数式は配列数式と言います) あとは、C36の式をC42までコピーすれば4月の分は完成します。 5月以降もその式を列方向にコピーして使うことができます。 参考)配列数式 http://www.hcs.co.jp/hitschool/qa_excel13.htm http://pc21.nikkeibp.co.jp/special/hr/hr1.shtml

airJ
質問者

お礼

ご回答ありがとうございます。 まさにこれです! 配列数式というんですね。 さっそく試したところうまくいきました。 ありがとうございます。

その他の回答 (7)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.8

こんばんは。 一応、縦に日付が出されたものだということで、考えてみました。 今のところ、書き出す場所を分りやすいようにしていますが、移動しても構いません。 A1:A31 までが日付(シリアル値)を表示したものとします。B1:B31 までは、曜日、C1:C31 までは、"v"を用いた、チェック欄ということにします。 A32 は、空白にしてください。 A33: =DATE(YEAR(A1),MONTH(A1),8+(ROW(A1)-1)*7)-WEEKDAY(DATE(YEAR(A1),MONTH(A1),7)) B33:(第1日曜日~) =SUMPRODUCT(($A$1:$A$31>A32)*($A$1:$A$31<=A33)*($C$1:$C$31="v")) これで、次の月が出るところまで、フィルダウン・コピーします。 これで出来るのではないかと思います。

airJ
質問者

お礼

ご回答ありがとうございます。 この数式は、私にはなかなか思い浮かびません...。 ひとつの質問で、皆さんのおかげでずいぶん勉強になります。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.7

もし月別かつ曜日別なら、#6の例で F2に「月」オートフィルで火から日まで作る。 F34に=SUM(IF(($C$2:$C$32="v")*($B$2:$B$32=F2),1,0)) と入れてSHIFT+CTRL+ENTER F40まで複写。 結果(E列E34:E40はオートフィルで作ったもの) E列  F列 月 1 火 3 水 3 木 2 金 3 土 3 日 0

airJ
質問者

お礼

ご丁寧にありがとうございます。 おかげでずいぶん理解できて来ました

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

下記は使えませんか。 例データ 2005/12/1 木 1 2005/12/2 金 v 1 2005/12/3 土 v 1 2005/12/4 日 1 2005/12/5 月 v 2 2005/12/6 火 2 2005/12/7 水 v 2 2005/12/8 木 2 2005/12/9 金 v 2 2005/12/10 土 v 2 2005/12/11 日 2 2005/12/12 月 3 2005/12/13 火 v 3 2005/12/14 水 3 2005/12/15 木 v 3 2005/12/16 金 3 2005/12/17 土 3 2005/12/18 日 3 2005/12/19 月 4 2005/12/20 火 v 4 2005/12/21 水 v 4 2005/12/22 木 v 4 2005/12/23 金 4 2005/12/24 土 v 4 2005/12/25 日 4 2005/12/26 月 5 2005/12/27 火 v 5 2005/12/28 水 v 5 2005/12/29 木 5 2005/12/30 金 v 5 2005/12/31 土 5 ーーーーー A2:A33までオートフィルで日付(シリアル値) B列B2は=TEXT(A2,"aaa") D列は作業列でD2は=COUNTIF($B$2:B2,"月")+1 B,c列は式を31日まで複写。 C34セルに(空きのセルならどこでも良い) =SUM(IF(($C$2:$C$32="v")*($D$2:$D$32=ROW()-33),1,0)) と入れて、SHIFT+CTRL+ENTERを同時に押す(配列数式) C38まで式複写。 結果B34:C38(B34:B38は入力と書式設定) B列   C列 第1週 2 第2週 4 第3週 2 第4週 4 第5週 3

airJ
質問者

補足

ありがとうございます。 お教えいただいたものは、各週ごとのvの数を集計し、 なおかつ、vの横に各曜日ごとの日数を合計しているのですね。 思いもよりませんでした。 参考になります。そもそも配列数式というものを 知らなかったもので、前の方にお教えいただいたページを参考に現在さっそくいろいろ試してみていました。

回答No.5

#1です。 失礼しました。 質問文を読み間違えてました・・・。

airJ
質問者

お礼

ご丁寧に、訂正をありがとうございます。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

>月曜日~日曜日ごとvがついた合計を この意味をはっきりさせてほしい。 月ごとvの数なら簡単だが、 月初日から第一日曜日 第2週 第3 第4 最終月曜日から月末日 のように集計したいのでしょうか。 これは複雑になりそう。 VBAでなら何とかなりそうだが。

airJ
質問者

補足

質問がわかりにくく申し訳ありません。 最初の質問に示したような、4月1日から3月31日までの表があります。 それに関して、月ごとに、月曜日はvが2個、火曜日はvが0個と いうふうにまとめたいのです。最終月曜日からという 複雑なものではなく、1~31日までです。

noname#22222
noname#22222
回答No.2

<力技> =ABS(A1="v") + ABS(B1="v") + ・・・ + ABS(N1="v") で横集計し、縦集計。 <スマート> カレンダーの該当するセルを集計するVBA関数を作成する。

airJ
質問者

お礼

ご回答ありがとうございます。 最初、力技でやろうとしていたのですが、なにかあるんじゃないかと思ったしだいです。 スマートな方法も考えてみます。

回答No.1

マクロなしなら・・・、 1.チェックマークが入る右に列を追加して、非表示にでもしておく。 2.そこに式を入れる。  (例)IF(チェックを入れる列のセル番号="v",1,0) 3.下までコピー(必要分フィル) 4.最後にSUM でいいかな?

airJ
質問者

お礼

さっそくのご回答ありがとうございます ご提示いただいた方法ですと、各曜日ごとのvをつけた合計ではなく、月のvの合計を 数えることにならないでしょうか。

関連するQ&A

  • エクセル関数の問題を教えください

    問題 関数を使用し、下記の例題のような予定表の日、曜日を表示させてください (1)2011年2月の予定表を作成してください (2)2011年3月の予定表を作成してください (月末の日が月により変わりますので、その部分を関数で作成してください) (曜日部分は全て関数で作成してください) 例題 3 月予定表 日 曜日 予定 1 火 2 水 3 木 4 金 5 土 6 日 7 月 8 火 9 水 10 木 11 金 12 土 13 日 14 月 15 火 16 水 17 木 18 金 19 土 20 日 21 月 22 火 23 水 24 木 25 金 26 土 27 日 28 月 29 火 30 水 31 木

  • エクセルで作る月間表 その2/3

    たびたびお世話になっております 再びエクセルに関する質問なんですが、 たとえばA1に「7月」 A2から順次「1日」、「2日」・・・「31日」 B列に曜日が表示され、 その表の下に、その月の曜日をカウントした表を作りたいのですが、 2005年の7月なら 日曜が5日(金、土も5日) 月曜が4日(火、水、木も4日) どのような式で求められるのでしょうか? 賢者のみなさん、ご教授をよろしくお願いいたします

  • エクセルで曜日表示をしたセルを参照した他のセルに文字を入れる事は出来ますか?

    縦に氏名、横に日付と曜日を入れました 毎週同じ曜日を参照して休日設定をしたいのですがどうすればよいでしょうか? 下記のような感じです 鈴木は毎週火曜日休み 佐藤は毎週木曜日休み 山田は毎週水曜日休み 月が替わると曜日が変わるようにしてあります   1 2 3 4 5 6 7 8 9 10 11   月 火 水 木 金 土 日 月 火 水 木 鈴木  休             休   佐藤      休             休        山田    休             休 よろしくお願いします

  • エクセル関数 countのことで教えて下さい

    初歩な質問でスミマセン。。周りに聞ける人がいないものでよろしくお願いします! 月 火 水 木 金 土 日 月 火 水 木 金 土 日・・・・・ 10 12 15 12 22 23 10 22 25 12 30 22 35 15 ↑のような表があり、これを元に各曜日毎に15以上の曜日をカウントしたいのです。。 countif("曜日の範囲","月")等で、各曜日のカウントを現在やっているのですがその各曜日から 15未満の日をカウントしないようにする工夫はできませんでしょうか? なにとぞ宜しくお願いいたします。 ちなみにエクセルは2003です。

  • エクセルの関数について

    エクセルに詳しくないので関数に強い方宜しくお願いいたします。 シート1の1行目に月・火・水・木・金・土・日と曜日を入れ、2行目にその曜日に合わせた月曜日が「3」、火曜日が「9」、水曜日が「4」など決まった数字を入れるとします。 シート2に月間の7/1から7/31で水曜日から始まる表を作り、その下の行にシート1に入れた7/1(水)だったら「4」、7/2(木)なら・・・と数字が表示されるような関数はあるでしょうか?

  • EXCELで曜日別に○の確立を求めたい場合

    下記のような表の時、曜日別に確立を出すのはどうすればいいのでしょうか 1日 | 月 | ○ 2日 | 火 | × 3日 | 水 | × 4日 | 木 | × 5日 | 金 | ○ 6日 | 土 | × 7日 | 日 | ○ ~~~~~~~~~~ 31日 | 月 | ○ こうなっていた場合に、曜日別に○が出る確立を求めたいのですがまるで分かりません。 よろしければご教示頂けませんでしょうか。 ちなみに使用しているEXCELは2002です。

  • エクセルで曜日指定のセル連続データを作りたい

    ウィンドウズ版のエクセル97を使ってます。 曜日指定の日付の入ったセルを作りたいのですが、セルの連続データのフィルハンドルでうまく行きません。簡単に出来る方法を教えて下さい。 具体例   2月 2日(土)       2月 5日(火)       2月 7日(木)       2月 9日(土)       2月12日(火)       2月15日(木)       2月17日(土)         ・         ・         ・

  • エクセル97で年月日を入力したら各月日が自動入力

      ABCDE           MNOPQ 1 2002/11/1 2   11月             12月 3 12345~          12345~ 4 金土日月火 計 累計   日月火水木  計 累計 5 3 1 5 2 3 14 14 上記のように、毎月の人数の集計表で横並びに毎月の集計 表があります A1のセルに2002/11/1と入力したら、毎月の表の最初の列 以降に、その月の日と曜日が横並びに表示され、その上に その月が自動的に入力出来る方法が分かりません 特に次の月からがどうすれば出来るか分かりません 出来れば関数で何とか作成したいのでご教授お願いします   

  • EXCELで、平日は平日、休日は休日で集計したい

        1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 平日 休日     日 月 祝 水 木 金 土 日 月 火 水 木 金 土 日   時間内 8 8 8 - 8 8 - 8 4 4 - - 8 8 8  ×× △△ 時間外 1 1 - - - 2 1 - - - - - 1 2  ×× △△ 上記のような就労表を作成しています。 記入する数字はすべて時間です。 日付と曜日、祝日は自動で表示できるようにしています。 土曜日、日曜日、祝日は休日手当が付きますので 平日は平日、休日は休日で自動集計したいのですが どのような関数を使えばよいのでしょうか? (表の××、△△に集計したいです) 宜しくお願いします。

  • 曜日別

    エクセルで例えば 月 25 火 30 水 19 木 18 金 25 土 35 日 19 月 31 火 30 水 15 木 18 金 91 土 35 日 19 という表があります この表から 曜日別に 月 合計 火 合計 水 合計 という風にするにはどうすればいいのでしょうか? 祝祭日も加えたいです あと、曜日別に並べ替えたいです 月 25   31 火 30   30 という風に 教えてください   

専門家に質問してみよう