「ブロック機能」のリニューアルについて

A列と1行はタイトルになっていて、B2~J10のデーター表があります。
シートは1日に1シートづつ増えて行きます。各シートは日付けを4桁で表示しています。
例えば、9月21日ならシート「0921」となっています。

Q1. このデーターを合計シートに串刺しで合計値を求めたいのですが、合計シートA1セルに曜日を入れたら、その曜日についてのみ合計するにはどのようにすれば良いでしょうか。

Q2. 合計シートの任意のセルについて、特定曜日毎のデーターを抽出して横方向にに日付け順位並べるには、どのようにすれば良いでしょうか。

以上、宜しくお願い致します。

「曜日毎、エクセル串刺し合計」の質問画像

質問者からの補足コメント

  • うれしい

    文字数の関係で省略して書きますことをお許し下さい。
    1.「合計」シートの右側には日付のシートは存在しません。
    ① 抽出シートのA列に抽出したいセル番地を指定します。
    ② 特定曜日の指定はA1に行います。
    ③ 意味が理解出来ていませんので抽出シートのレイアウトを書きます。
    1)A1に曜日を入れます。
    2)B1~右方向に特定曜日の曜日を入れます。
    3)B2~右方向に特定曜日の日付けを入れます。
    4)A3に抽出したいデーターのセルを入れます。
    5)B3~右にA3について、特定曜日&日付け毎のデーターが抽出されます。
    ④ 仰せの取りですので、上記にレイアウトを書きました。
    ⑤ 仰せの通り、「シートを左側から、日付順に配置しておく」事を前提とします。
    3.現在月日は2021年とし、0104~は2022年とて下さい。
    以上、宜しくお願い致します。

    No.4の回答に寄せられた補足コメントです。 補足日時:2021/09/22 14:24
  • ご回答を頂きまして有り難うございます。
    1.抽出シートは頂きました添付図の通りで間違いありません。
    念のためですが、指定のセルはB1の下に例えばですが、C2,E5,B2の様に続きます。
    2.シート名称がわかりずらく失礼しました。
    シート名称は、西暦下2桁+月2桁+日2桁に修正します。(例:210921)
    以上、宜しくお願い致します。

    No.5の回答に寄せられた補足コメントです。 補足日時:2021/09/22 17:29
教えて!goo グレード

A 回答 (7件)

下記URLにアップしました。


標準モジュールに設定してください。
Q1:合計シート設定 を呼び出してください
Q2:抽出シート設定 を呼び出してください
https://ideone.com/ST6tgZ
不明点があれば補足してください。
    • good
    • 1
この回答へのお礼

助かりました

お世話になります。
この度は、短時間に130行以上の長いプログラムを開発して頂きまして誠に有り難うございました。
ご親切に心から感謝致します。

VBAにつきましては殆ど分かりませんが、これを機会にデーター表を大きなものに変更したりして内容を理解したいと思います。
不明点がでましたら質問させて戴きますので今後とも宜しくお願いしします。

お礼日時:2021/09/23 00:03

No5です。

添付図が漏れていました。
失礼しました。添付図です。
「曜日毎、エクセル串刺し合計」の回答画像6
    • good
    • 0
この回答へのお礼

大変お世話になりありがとうございました。
本日マクロを稼働しました。
最初、文字化けがありましたがエクセルの使用文字をMS明朝に変更したとこと文字化けもなくなり、試行錯誤しながら無事に稼働しました。

マクロを実行するとまもなく希望通りの合計シートと抽出シートの内容が確認出来て感動ものです!

お礼日時:2021/09/23 16:16

No4です。

補足ありがとうございました。
まだ、不明点があるので確認いたします。
1.抽出シートへの抽出は、添付図のようになりますか。
黄色のセルが、あなたが指定する個所です。
青色のセルが、マクロにより表示される個所になります。
例では、B1が指定されているので、水曜日の日付の「北海道のたこ」についての値が、日付順にならべて表示されます。

2.「現在月日は2021年とし、0104~は2022年とて下さい。」
この回答の意味がよくわかりません。
本日が2021年9月22日の時、0921は何年ですか。
本日が2021年9月22日の時、0922は何年ですか。
本日が2021年9月22日の時、0923は何年ですか。

本日が2022年1月1日の時、0101は何年ですか。
本日が2022年1月1日の時、0102は何年ですか。
本日が2022年1月1日の時、0103は何年ですか。
本日が2022年1月1日の時、0104は何年ですか。

本日が2022年1月4日の時、0101は何年ですか。
本日が2022年1月4日の時、0102は何年ですか。
本日が2022年1月4日の時、0103は何年ですか。
本日が2022年1月4日の時、0104は何年ですか。
本日が2022年1月4日の時、0105は何年ですか。

本日とは、マクロを実行したときの、日付(システム時刻)です。
この回答への補足あり
    • good
    • 0

マクロ作成が前提での補足要求です。


1.「合計」シートの左側が日付のシートと考えてよいですか。
(「合計」シートの右側には日付のシートは存在しない)

2.「合計シートの任意のセルについて、特定曜日毎のデーターを抽出して横方向にに日付け順位並べるには、どのようにすれば良いでしょうか。」
ということですが、
①任意のセルの指定はどこにしますか。(B2~J10の何れかが指定される前提)
 例 A12のセル等
②特定曜日の指定はA1に行うと理解して良いですか。
③横方向に並べるとき、開始のセルはどのセルにしますか。
 例 A14のセル等
④横方向に並べるとき、その上に、見出しとして日付(0901等)をつけないと、何日のデータなのかが
判らないので、日付もつける必要があると思いますが、いかがでしょうか。
 例 A13のセルに0901等を表示
⑤横方向に並べるとき、日付順に並べたいということですが、シートを左側から、日付順に配置しておくことは可能でしょうか。
例 0901 0902 0903 0904 ・・・日付順に配置されている
例 0901 0904 0903 0902 ・・・日付順に配置されていない

3.年の扱いについて
0901のシートは暗黙の前提として「2021年9月1日」のシートと理解していますが、
来年になったとき、0901のシートは何年のシートと解釈すれば良いのでしょうか。
(年が正確に決まらないと曜日が決定できません)
この回答への補足あり
    • good
    • 0

A1.各シートに曜日ごとに合計を求める値を表示するセルを別途用意しておく。


 月曜日なら K2:S10 に B2:J10 の値を複製
 火曜日なら K11:S19 に B2:J10 の値を複製
 水曜日なら K20:S28 に B2:J10 の値を複製
  …
 日曜日なら K56:S64 に B2:J10 の値を複製
そして曜日に合わせて複製した各範囲を串刺し計算する。
INDIRECT関数を使って範囲を指定すると良いでしょう。
自分なら「ここから」シートから「ここまで」シートに挟まれたシートを範囲として合計するようにします。
シートの位置を変える必要がありますが、任意の範囲を指定することが容易にできる上に、数式をいじる必要もないので便利。

A2.1シートずつ抽出するしかない。
  曜日と日付を紐づけて表示させるなどしてみましょう。
  この場合も面倒でもINDIRECT関数のお世話になると良いと思います。

・・・

正直面倒なんで数式は示しません。
たぶん時間のある人が数式を示してくださるとは思いますが、あまり期待しない方が良いでしょう。

なお、シート名を取得する関数がありますので、それを使ってシート名から日付に直して曜日を特定し該当する場所に値を表示させると楽ができます。
CELL関数がそれです。
ただし一度保存しないと"filename"を指定しても値が返ってきません。
このパラメーターはシート名を取得するのではなく、ファイル名を取得することが目的のパラメータだからです。

読み取れるかどうか分かりませんが、
 =CELL("filename",A1)
とした結果がこのように返ってきます。
返ってきた文字列のシート名部分をRIGHT関数などで拾ってシリアル値に加工しましょう。
「曜日毎、エクセル串刺し合計」の回答画像3
    • good
    • 1
この回答へのお礼

データーレイアウトで解決する方法をご教示頂きまして有り難うございます。 この方法なら低レベルの私でも出来そうです。
なお、曜日をシート名から取得する方法につきましてもご教示頂きまして有り難うございました。 
この方法も試したいと思います。

お礼日時:2021/09/22 13:49

No.1の者です。



検索で、似た?様な質問
https://oshiete.goo.ne.jp/qa/11760034.html

Excel VBA 串刺し計算 などで調べると幾つか出てきますね。
それをベースに、質問者さんのやりたい様に、修正が必要になりますが。

VBAで良ければ、お力をお貸しする事はできますが、基本は質問者さんが
 自分でチャレンジされて、不明点を質問という形でしたら。
    • good
    • 1
この回答へのお礼

VBAの同様質問の検索を押して頂きまして有り難うございます。
VBAは興味はありますが、使うのは1年に数回という頻度のため覚えても忘れてしまいますので、もう少し考えたいと思います。

お礼日時:2021/09/22 13:46

こんばんは。



直接の回答ではありませんが、

Q1. このデーターを合計シートに串刺しで合計値を求めたいのですが、合計シートA1セルに曜日を入れたら、その曜日についてのみ合計するにはどのようにすれば良いでしょうか。
 → 串刺し計算では、選択したシート全てが対象になるので、特定のシートを抽出して合計するのはできないと思います。
 Excel VBAを使って処理するしか無いような気がしますが、初心者ですと、ハードルが高いかと思います。

関数で処理するにも、SUM(0901!D3,0908!D3,0915!D3,0922!D3)の様な
 文字列を関数で作ってINDIRECT関数で取得する様な方法でしょうか?
ただ、毎日シートが増えるので、文字が増減するのが難点かと思います。


Q2. 合計シートの任意のセルについて、特定曜日毎のデーターを抽出して横方向にに日付け順位並べるには、どのようにすれば良いでしょうか。
 → こちらは、Q1.より、更に難易度が高いと思います。

関数のエキスパートならできるかもしれませんが、私には無理です。。。

Excel VBAで処理した方が良いかも知れません。。。
    • good
    • 0
この回答へのお礼

早速、回答を頂きまして有り難うございます。                 いずれも関数では難しいのですね。
VBAは全く分かりませんので諦めざるをえないですね!

お礼日時:2021/09/21 21:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

教えて!goo グレード

人気Q&Aランキング