エクセル初心者ですので使用用語や、説明が不十分かもしれませんが
下記、アドバイスいただければと存じます。
現在2つのシートがあり、Weekly(シート1)とDaily(シート2)でデータを取っています.
Weeklyは縦列に項目、横列にweek1,week2....(1ヶ月分)となっています。
Dailyは縦列に項目、横列にDay1,Day2.....(1ヶ月分)となっています。
やりたいこととしてはDailyデータをSUM関数を使ってWeeklyデータへと集計したいです。
その際にすべてを設定するとかなりの工数になるため1つのSUM関数を設定(Week1⇒Day1:Day7)してから後はコピーで済ませたいですが、
例)セルA1 week1 =SUM(Day1:Day7)で設定しコピーでセルB2 にweek2 =SUM (Day8:Day17)の設定で貼り付ける。
つまりWeekly側でセルはひとつしか動かないがDailyでは7つずつ横にずれていくといったコピーの設定はできますでしょうか。
説明がわかりづらく非常に恐縮ですが、アドバイスいただければ幸いでございます。
No.5ベストアンサー
- 回答日時:
申し訳ない。
ついテンションがおかしくなってSUMとOFFSET入れ違えました。括弧も違った。
=SUM(OFFSET('2017 June '!H50:U50,0,COLUMN()*13-39))
yokoyama様
いつも迅速にご回答いただきましてありがとうございます。
いただきました関数を入れるとすべてうまくいきました。
まだまだ理解していない部分が多いため、以後、自分で調べてすべて解決できるように
理解を深めていきたい所存でございます。
この度はありがとうございました。
僭越ながら、ベストアンサーに選ばせていただきます。
No.4
- 回答日時:
>これをコピーによって
>D47=SUM('2017 June '!V50:AI50)
>にする方法はございませんでしょうか。
はい。ありません。
ないからOFFSETを説明しています。
なおC46からD47って、斜めってますけど・・・。
C46=SUM('2017 June '!H50:U50)
これ・・・・、
じゃぁどうして意味のない7つのサンプルを出したんですか?
14なら最初からそういって。てかなんで14個をSUM?
もしかしてセル結合?
ったく、わかりもしない奴に限って無駄に結合したがるんよね。
生産性落ちるだけなのに。
C46=OFFSET(SUM('2017 June '!H50:U50),0,COLUMN()*13-39)
で試してみてください。
右にオートフィルして結果が合致する事をお祈りいたします。
yokoyama様
ご回答ありがとうございます。
補足に一部間違いがありました。
申し訳ございません。
正しくは
D46=SUM('2017 June '!V50:AI50)
です。
また、はじめの質問で回りくどい質問になってしまいました。
こちらも併せてお詫び申し上げます。
7日分のデータ集計ですが実質のセル数は14のため(空白セルと数値が連続であります。こちらは便宜上です。)、実例を挙げた際に変わってしまいました。
ご参考に頂戴しました関数を試してみます。
大変御手数おかけいたしました。
また、早急なご回答ありがとうございました。
No.3
- 回答日時:
縦列(じゅうれつ)は「列」のことでしょうか
横列(おうれつ)とは「行」のことでしょうか?
>例)セルA1 week1 =SUM(Day1:Day7)で設定しコピーでセルB2 にweek2 =SUM (Day8:Day17)の設定で貼り付ける
A1セルをB2セルに斜めにコピーするのでしょうか?
早速のご回答ありがとうございます。
説明下手で大変申し訳ございません。
実例で申し上げますと、
C46=SUM('2017 June '!H50:U50)
の関数をいれてまして
コピー機能を使い
D47=SUM('2017 June '!V50:AI50)
にしたいのですが
通常C46をコピーしD47に貼り付けると
D47=SUM('2017 June '!I50:V50)とひとつ右にずれた形になると思います。
これをコピーによって
D47=SUM('2017 June '!V50:AI50)
にする方法はございませんでしょうか。
何卒よろしくお願い申し上げます。
No.2
- 回答日時:
可能ですが正確な列が判らないので
=SUM(OFFSET(Daily!A1:Daily!G1,0,COLUMN()*6-6))
COLUMNが数式の入ったセルの列番号です。集計位置にあうように-6の処を
修正してください。行番号も。
OFFSETは範囲をずらせる、まさに目的通りの関数ですが
そこにずらせる量を現在の列番号を利用しようという考え方です。
位置が自動的に1ずつずれるので*6してます。
詳しくご回答いただきましてありがとうございます。
おそらくつたない日本語でしたが私の質問の意図は汲み取って頂いたのだと思い、感謝しております。
しかしながら、私の質問の質の悪さと頭の悪さで、別途Offset関数に関する理解を深めようとしましたがいまひとつつかめないのが現状です。
実例を申し上げますと
C46=SUM('2017 June '!H50:U50)
の関数をいれてまして
コピー機能を使い
D47=SUM('2017 June '!V50:AI50)
にしたいのですが
通常C46をコピーしD47に貼り付けると
D47=SUM('2017 June '!I50:V50)とひとつ右にずれた形になると思います。(おそらくここをOffset関数を使えば次の範囲を⇒に7つずらせるのだろうというところまではわかりました。)
これをコピーによって
D47=SUM('2017 June '!V50:AI50)
にする方法はございませんでしょうか。
折角、ご回答いただいたにもかかわらず、私の理解力の無さで御手数おかけいたしまして申し訳ございません。
御恥ずかしい限りでございます。
何卒よろしくお願い申し上げます。
No.1
- 回答日時:
OFFSET関数で範囲を指定するようにしてはいかがでしょう。
基準のセルからどれだけずれた位置を範囲にするかを指定する関数です。
=SUM(OFFSET(基準セル,行方向,列方向,範囲の高さ,範囲の幅))
のように指定すればいいです。
C3セルからC23セルまでのデータを7つずつ合計するなら
=SUM(OFFSET($C$3,INT(ROW(A1)-1)*7,0,7,1))
と入力したセルを下方向へ2つ複製すれば良い。
「ROW(A1)」の数式は縦方向へコピーした時「1」「2」「3」の数字を返すために使っています。
質問では横方向へコピーするようですのでここをCOLUMN関数に置き換えてください。
また、OFFSET関数で「行方向」「列方向」の指定も変更する必要があります。
Dayのデータも横方向ですので、範囲の指定も変更してください。
さらにOFFSET関数の使い方について自身でも調べて理解をしてください。
・・・
縦方向へのコピーという回りくどい回答をしていますが、
これは考え方の【理解】をしてもらうためにわざとこのように答えています。
いじわるや手抜きではありませんのでご了承ください。
・・・余談・・・
下の図の作成でほとんどの時間を取られている回答だったりしますw
ご丁寧に返信いただきまして誠にありがとうございます。
わかりやすいように図を作成いただきまして恐縮でございます。
ご教示いただきました内容を理解しようとしましたが、私にとっては非常に難しく、100%理解することができませんでした。
今回のケースの場合Offset関数というものを使用すれば解決できることはわかりました。また別途インターネットでOffset関数に関して調べました。
(https://kokodane.com/kan10.htm)こちらに記載の内容は理解しました。
がなかなか落とし込んで応用することができません。
実例を申し上げますと、
C46=SUM('2017 June '!H50:U50)
の関数をいれてまして
コピー機能を使い
D47=SUM('2017 June '!V50:AI50)
にしたいのですが
通常C46をコピーしD47に貼り付けると
D47=SUM('2017 June '!I50:V50)とひとつ右にずれた形になると思います。(おそらくここをOffset関数を使えば次の範囲を⇒に7つずらせるのだろうというところまではわかりました。)
これをコピーによって
D47=SUM('2017 June '!V50:AI50)
にする方法はございませんでしょうか。
実例へのアドバイスを参考にさせて頂き、理解を深めればと存じます。
私の理解力のなさで大変御手数おかけいたしまして申し訳ございません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 最終行まで数式をコピーする 3 2023/01/03 15:44
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Excel(エクセル) エクセルのフッタやヘッダーについて 3 2023/02/04 09:45
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel分数の表示について
-
Excelについての質問です。 B2...
-
EXCELの散布図で日付が1900年に...
-
文字2桁、3桁交じりの文字列...
-
【EXCEL】画像の黄色部分の抽出...
-
マクロエクセルのブロック解除
-
絶対参照
-
Excelで表を作ったところに文字...
-
Excelピボットテーブルの1行目
-
エクセルのクイックアクセスツ...
-
DATE関数で現在の年齢を出した...
-
(マクロ)vlookupの元データを同...
-
PDFの請求明細をエクセルにしたい
-
エクセルのクイックアクセスツ...
-
REGEXREPLACE関数について、
-
職場の人から聞かれており、こ...
-
エクセルの空欄をつめて、次の...
-
ユーザー定義関数をアドイン登...
-
EXCELの質問です 119から足した...
-
エクセルの問題です。絶対値の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報
実例を申し上げますと、
C46=SUM('2017 June '!H50:U50)
の関数をいれてまして
コピー機能を使い
D47=SUM('2017 June '!V50:AI50)
にしたいのですが
通常C46をコピーしD47に貼り付けると
D47=SUM('2017 June '!I50:V50)とひとつ右にずれた形になると思います。(おそらくここをOffset関数を使えば次の範囲を⇒に7つずらせるのだろうというところまではわかりました。)
これをコピーによって
D47=SUM('2017 June '!V50:AI50)
にする方法はございませんでしょうか。
上記ですが
C46=SUM('2017 June '!H50:U50)
の関数をいれてまして
コピー機能を使い
D46=SUM('2017 June '!V50:AI50)
にしたいのですが
通常C46をコピーしD46に貼り付けると
D46=SUM('2017 June '!I50:V50)とひとつ右にずれた形になると思います。(おそらくここをOffset関数を使えば次の範囲を⇒に7つずらせるのだろうというところまではわかりました。)
これをコピーによって
D46=SUM('2017 June '!V50:AI50)
にする方法はございませんでしょうか。
の間違いです。
申し訳ございません。