よろしくお願いいたします。
集計表1708.xlsxファイル、シートが「1、2、3…31」となっており、それぞれのシートの中に
A1…日付
A2…weekday関数でA1を参照(月曜日を1とする)
A4…a時間
A5…b時間
A6…c時間
B4…a時間の値(数値)
B5…b時間の値(数値)
B6…c時間の値(数値)
となっております。
1日から31日までに取得した時間が入っておりますが、
①平日のみ
②土曜日のみ
③土日祝のみ(祝日はweedkayのところでifを追加し、祝日の場合は値1を表示)
の数値を「まとめシート」で取得したいのです。
なお、入っている数値等の位置は変わることはありません。(串刺しをしてみたのですがうまくいきませんでした)
無理というのであればあきらめるのですが、詳しい方がいらっしゃいましたらご教授頂けますと助かります。なお、weekday関数を使っていますが、使用しなくても大丈夫です。
どうぞよろしくお願いいたします。
No.4
- 回答日時:
どういう式を入れているのかも書いておくべきだと思うんですが、おそらくSUMIFとかでしょうか。
SUMIFでは串刺しはできません。
シートを分けたままで私がやるなら、各シートの空いたセル(同じ位置)に月~日、平日、休日の集計表を作成。
例えばその日が月曜なら月の欄に数値が入る、さらに平日にも数値が入る、という形にしておいて集計シートで串刺しします。
SUMIFではなく、SUMPRODUCTで試みておりました。
おっしゃる通りシートで分かれているのでなかなかうまくできずに悩んでおりました。
どういう式を入れたらよいのかというご相談でしたが、やはり難しそうですね。。。ありがとうございました。
No.3
- 回答日時:
こんにちは
No1様もおっしゃっているように、シートがバラバラになっているのが面倒ですね。
無理やりやるとしても、シート名の指定で式が長くなるばかりなので、少し違う方法を考えてみました。
>まとめシートのどこでもよいのです。
>要は計算ができれば。
とのことですので、まとめシートの使い方は多少自由にできるものとして考えています。
まず、「まとめシート」に計算に必要となる各シートのB列を並べて表示してしまいましょう。
例えば、A10から横に1、2、3・・・シートのB列のデータを並べることにして、A10セルに
=INDIRECT(COLUMN()&"!B"&ROW()-9)
の式を入れて、必要な範囲まで(横31列、縦6行分?)フィルコピーすると各シートのB列の値が順に並びます。
一つのシートに表示できてしまえば、後は、COUNTIFSやSUMPRODUCT関数などを利用することで比較的簡単に集計はできますよね?
(空けてある1~10行を利用して、求めたい値を集計する関数式を設定しておけばよいでしょう)
ご質問の①、②は上記で求められると思いますが、③については、No1様のご指摘にもあるように、どのようにして土日祝を識別できるのかわかりませんので、ご質問文の条件だけでは難しいように思います。(実際には、①でも月曜と祝日の区別ができませんが…)
どこかの空きセル(例えばB2セルとか)に祝日である表示があるなどのようにしても良いのなら、①~③とも同じ要領で集計可能になると思います。
仰る通りまとめシートは計算ができれば特に制限などはございませんでした。
実際に使用したいと思っていたファイルが参照部分がとても多く、仰る方法だとものすごい範囲になってしまったので断念致しました。。。
ご提示いただきありがとうございました。
No.2ベストアンサー
- 回答日時:
No.1です。
いずれにしても関数や串刺し計算では難しいと思いますので、
↓の画像のような配置でのVBAにしてみました。
左側が各日のシートで右側が「まとめシート」とします。
尚、各日のB2セルは単純にWEEKDAY関数で
=WEEKDAY(A1)
とし、日曜日始まりとしています。
(祝日に関しては処理していませんが、数式などで「1」になるようにしてください)
標準モジュールです。
Sub Sample1() '//この行から//
Dim i As Long, k As Long, wS As Worksheet
With Worksheets("まとめシート")
.Range("B2:D4").ClearContents
For k = 1 To Worksheets.Count
Set wS = Worksheets(k)
If wS.Name <> .Name Then
For i = 2 To 4
Select Case wS.Range("B1")
Case 7
With .Cells(i, "C")
.Value = .Value + wS.Cells(i + 2, "B")
End With
Case 1
With .Cells(i, "D")
.Value = .Value + wS.Cells(i + 2, "B")
End With
Case Else
With .Cells(i, "B")
.Value = .Value + wS.Cells(i + 2, "B")
End With
End Select
Next i
End If
Next k
End With
End Sub '//この行まで//
※ どうしても関数で!となると
コツコツIF関数のネストで各シートのB2セルの値を分岐 → 該当セルにプラス!
といった作業になるのではないでしょうか?
そこまでやる気力も体力もありませんが・・・m(_ _)m
まとめてのお礼で申し訳ございません。
VBAまでお考えいただきありがとうございました。
最終的にマクロかなとは思っていたのですが、それも範囲が広く細かくとても難しそうでした。
機能的に難しいということのようですが、色々とお考えいただきましたため、ベストアンサーとさせていただきました。
貴重なお時間をいただきありがとうございました。
No.1
- 回答日時:
こんばんは!
回答ではありません。
>シートが「1、2、3…31」となっており・・・
これが作業を余計に難しくさせていますね。
一つのSheetにまとめれば関数で簡単にできそうですが、まぁ~それはさておいて。
VBAであれば可能です。ただし、
>A2…weekday関数でA1を参照(月曜日を1とする)
ん?画像ではB1セルでは?
それと「月曜日=1」としてしまうと
>祝日はweedkayのところでifを追加し、祝日の場合は値1を表示
とありますので、月曜と祝日が共に「1」になってしまい、平日か祝日かの判断ができません。
普通に日曜日始まりで月曜日は「2」とした方が間違いがないかも・・・
そして、「まとめシート」のどこのセルに
①~③の値を表示すれば良いかも記載がありませんね。
その辺が判らないといくらVBAで!といってもコードの記載ができません。
この程度でごめんなさい。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) シート参照を含む数式を連続コピー 3 2022/12/10 11:42
- Excel(エクセル) セルに特定の色が出た時だけ、式を発動させたい 4 2022/06/17 10:32
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- その他(教育・科学・学問) エクセル関数について 2 2022/12/23 08:59
- Excel(エクセル) エクセルの祝日に色が反映しない 4 2022/05/18 09:58
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Excel(エクセル) 別シートに毎回異なるデータをコピーする 7 2022/06/24 09:02
- Excel(エクセル) 数式→数値固定する方法ありますか? 5 2023/06/18 15:22
- Excel(エクセル) エクセルの関数に関しての質問です。 5 2022/10/07 11:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
尿検査前日に自慰行為した時の...
-
白血球が多いとどんな心配があ...
-
彼女のことが好きすぎて彼女の...
-
検便についてです。 便は取れた...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
尿検査の前日は自慰控えたほう...
-
精子が黄色?
-
中出しをするとお腹が痛い・・・。
-
EXCELで条件付き書式で空白セル...
-
excelでsin二乗のやり方を教え...
-
これって喉仏ですか? 私は女性...
-
口の中に黒い血の塊
-
納豆食べた後の尿の納豆臭は何故?
-
2つの数値のうち、数値が小さい...
-
エクセル指定した範囲からラン...
-
筋トレするとチンコが縮んじゃ...
-
変な話しになります。尿検査で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
首吊りどこ締めるの
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
白血球が多いとどんな心配があ...
-
中出しをするとお腹が痛い・・・。
-
射精をして1週間以内に尿検査を...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
変な話しになります。尿検査で...
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
男です。昨日の午後3時くらいに...
-
今朝、毎朝の習慣でオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
1日前の検尿
-
値が入っているときだけ計算結...
-
精子が黄色?
おすすめ情報
おはようございます。
返信が遅くなり申し訳ございません。
もともとのファイルが1~31シートという仕様なので、なかなかうまくできずご相談した次第です。
また、weekday関数が入っているのは仰る通りB1セルでした。大変失礼いたしました。
まとめシートのどこでもよいのです。
要は計算ができれば。
ただ、串刺し仕様になるかと思いましたので、全シート同じ仕様として頂ければと思います。
また、VBAでは可能なのはわかっているのですが、メンテナンスができる者が少なく、なるべく数式でやりたいとの希望でした。
やはり難しそうですね…。