Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 7 Professional : Excel 2010)
曜日ごとの集計表を作成したい
投稿日時: 19/02/05 17:26:34
投稿者: めい666

ブック内の構成:
「集計」シート、「月曜日」シート「火曜日シート」・・・、「1日」シート「2日」シート・・・といったように1つのブックで月ごとの実績管理をしています。
 
「月曜日」シートには「1日」シートから始まる複数のシートの月曜日の分の集計を取りたいと思います。
 
そこで、
「集計」シートのA1セルに「日付を入力」
「1日」シートのA1セルに「集計!A1」
「2日」シートのA1セルに「1日!A1+1」といったように日付を参照する式をいれ、
それぞれのセルのB1のセルに「=WEEKDAY(A1,1)」の式を入れ、曜日を取得しています。
 
ですが、「月曜日」シートの集計表に
各シートのB1セルに「2」が入っているシートのみ集計する、ということができません。
なにか、方法があれば教えていただきたいと思います。

回答
投稿日時: 19/02/05 17:51:55
投稿者: WinArrow
投稿者のウェブサイトに移動

「1日」〜「31日」側のシートを若干修正することができますか?
 
例えば、
1行目〜7行目の曜日別の集計する行です。
 
日曜日を1行目
月曜日を2行目


土曜日を7行目
のようにします。
月の中で「1日」というのは、1日しかありませんから、1行目から7行目のどこかに集計されます。
 
曜日別シート側では、「串刺し計算」を使って集計します。
 
 

回答
投稿日時: 19/02/05 18:16:42
投稿者: WinArrow
投稿者のウェブサイトに移動

文章一部訂正
>行目から7行目のどこかに集計されます。
 ↓
行目から7行目の曜日が合致するセルに集計するようにします。
  
 
追加情報
 
曜日を取得するのに「Weekday関数」を使っても良いですが、
 「TEXT関数」を使うこともできます。
  
 =TEXT(日付,"aaaa")

回答
投稿日時: 19/02/06 10:19:03
投稿者: Mike

めい666 さんの引用:
「月曜日」シートには「1日」シートから始まる複数のシートの月曜日の分の集計を…
確認させてください。
》 「月曜日」シートには「1日」シートから始まる複数の
》 シートの月曜日の分の集計を取りたいと思います。
同じ「1日」でも、
________1月_2月_3月
2019年___火___金___金
2020年___水___土___日
のように、年、月に依って異なります。
 
年、月の情報は何処に入っているのですか?

回答
投稿日時: 19/02/06 11:06:21
投稿者: Suzu

単純なのは、
=IF('1日'!B1=2,SUM('1日'!A3:A1048576),0)+IF('2日'!B1=2,SUM('2日'!A3:A1048576),0)+・・・
という話ではないでしょうか。
 
 
データベースとして考えるなら、日ごとにシートを変えずに、

	A	B	C	D
1	ID	日付	データ1	データ2
2	1	2019/2/1	A	1
3	2	2019/2/1	A	2
4	3	2019/2/1	B	5
5	4	2019/2/2	B	2

の様に列として持たせた方が楽でしょうね。
 
GUIを取るか、計算式を含めた管理しやすさを取るかはそれぞれでしょうけど。

回答
投稿日時: 19/02/07 15:11:52
投稿者: んなっと

表形式の具体例が示されないので回答が難しいです。
以下、実際には使い物にならない遊び回答です。
 
月曜日シートについて。
 
【パターン1】
 
「1日,2日,....,30日,31日 シートの同じ位置のセルを串刺し計算する。
ただし、各シートのB1が2の時のみ加算して、B1が2ではないときは除外するものとする。」
 
=SUM(IFERROR(N(INDIRECT(ROW($1:$31)&"日!R"&ROW()&"C"&COLUMN(),FALSE))*(N(INDIRECT(ROW($1:$31)&"日!B1"))=2),))
Ctrl+Shift+Enter同時押し
 
※月によっては31日シートがないといった状況の場合、下の式だとエラーになります。
=SUMPRODUCT(SUMIF(INDIRECT(ROW($1:$31)&"日!B1"),2,INDIRECT(ROW($1:$31)&"日!R"&ROW()&"C"&COLUMN(),FALSE)))
 
 
 
【パターン2】開くのにも時間がかかる重いブックになります。
 
「1日,2日,....,31日 シートの同じ列を集計する。2行〜100行まで対象。
ただし、各シートのB1が2の時のみ集計して、B1が2ではないときは除外するものとする。」
 
=SUM(IFERROR(N(INDIRECT(COLUMN($A:$AE)&"日!R"&ROW($2:$100)&"C"&COLUMN(),FALSE))*(N(INDIRECT(COLUMN($A:$AE)&"日!B1"))=2),))
Ctrl+Shift+Enter同時押し

トピックに返信