

表題の件について、ご教示頂きたく存じます
あるBookのSheet1に下のような表があります(「.」は表がズレないようにするためのもので本題とは無関係です)
.......A......B......C......D......E......F ……
1 通番 名前 4/2 5/1 6/9
2 001 佐藤....30............20
3 002 鈴木...........10.....20
4 003 高橋....10................
5 004 山本...........30.....10
6 005 渡辺...........40.....20
この通番ごとの数値の合計を、Sheet2に
......A......B......C
1 通番 名前 合計
2 001...佐藤....50
上記のように集計したいのですが、Sheet1の表は不定期にデータが追加されていく(F列以降に数値が入れられていく)もので、
通常の範囲指定(「=sum(sheet1!C2:E2)」のような)では対応することができません
そこでこの状況において、【随時追加されていく数値に合わせて合計範囲も変化する式】があればお教え願えますでしょうか
(集計するための数式はSheet2のC列2行目以下に挿入します)
調べた中で、offset関数やcount関数などを組み合わせれば良いのかと試してはみたものの、
表の中に空白セルが存在することや、行ではなく列毎にデータが追加されていくことなどが原因なのか
思うように集計することができませんでした
(通常の範囲指定でも、数値が追加される度に合計範囲を変更するか、
範囲をC列以降に指定するなどすれば良いのかもしれませんが、出来ればそれは避けたいです)
もしこれが不可能なのであれば、その旨だけでもご回答頂けましたら幸いです
不躾かとは存じますが、宜しくお願い申し上げます
※内容の一部を修正したため前回の質問を削除した上で再投稿させて頂きました。申し訳ございませんでした
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
OffsetやCountを使いたいのであれば、こんな感じでイケると思います。
=SUM(OFFSET(Sheet1!C2,0,0,1,COUNT(Sheet1!$1:$1)))
1行目(見出しの行)の数字のセル(日付のセル)をカウントして、その列分だけOFFSETで参照しています(見出しの日付部分には、さすがに空白は無いですよね?)。
ただ、他の方が言っているように、広めに指定しちゃた方が、手っ取り早いと思いますよ。
Excelって、そんなに馬鹿じゃないので、広く取ってもパフォーマンス落ちないと思います。
No.4
- 回答日時:
No.3です。
細かい検証をしていませんでした。
前回の配列数式の場合、数式を下へフィル&コピーしても
必ずC2セルからの合計になってしまいますね。
行が下になるたびに C2・C3・C4・・・のように変化させる必要がありました。
=SUM(INDIRECT("Sheet1!C"&ROW(A2)&":"&ADDRESS(ROW(A2),MAX(IF(Sheet1!2:2<>"",COLUMN(2:2))))))
※ これも配列数式になります。
※ わざわざこんな難しい数式にする必要はないような気がしますが・・・
どうも失礼しました。m(_ _)m
No.3
- 回答日時:
こんにちは!
横からお邪魔します。
すでに的確な回答が出ていますので、余計なお世話かもしれませんが・・・
別シート表示のようなので、これ以上データはない!という位の範囲指定をしておけば対応できると思います。
仮にSheet2の2行目にSheet1の2行目を合計を表示したい場合は
=SUM(Sheet1!C2:XFD2)
といった具合に。(XFD列はシートの最終列になります)
どうしても最終列を取得し、その範囲を指定したい!というコトであれば
No.2さんが仰っているように最終列番号の取得が必要になります。
本来であれば通常はやらないと思いますが・・・
Sheet2の表示したいセルに
=SUM(INDIRECT("Sheet1!C2:"&ADDRESS(ROW(A2),MAX(IF(Sheet1!2:2<>"",COLUMN(2:2))))))
配列数式なので、Ctrl+Shift+Enterで確定!(←必須★)とすれば
Sheet1の各行の最終列までがSUM関数の範囲になります。
※ このINDIRECT関数は同一シートの同じ行に「合計セル」がある場合などには有効です。
(列挿入などにも対応できる)
※ 実際のところ後者の数式はPCにかなりの負担をかけ計算速度が極端に落ちます。
なので、最初の広い範囲のSUM関数の方をおススメします。m(_ _)m
No.2
- 回答日時:
こんにちは
>通常の範囲指定でも、数値が追加される度に合計範囲を変更するか、
>範囲をC列以降に指定するなどすれば良いのかもしれませんが、
>出来ればそれは避けたいです
最終(入力)列を関数で算出することは可能ですが、「各列を調べて空白でない最終列を調べる」ことになるので、求める最終列以降の列についても(入力がないことを)確認することになります。
結局のところこれは、
>範囲をC列以降に指定するなどすれば良いのかもしれませんが、
>出来ればそれは避けたいです
と同じことになりますので、それならば、わざわざ最終列などを求めなくても、No1様のご提案のように集計範囲を十分に取っておく方法のほうが遥かに優れていると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
sum 範囲を横に可変したいです! 縦ならできたのてすが・・ 写真のような関数の組み方ではうまくいき
Excel(エクセル)
-
エクセル countif関数で、範囲を可変にするには
Excel(エクセル)
-
エクセル 関数を使った横方向の期間集計、範囲指定した横方向の集計
Excel(エクセル)
-
-
4
OFFSET関数とCOUNTIFって組み合わせはできますか? COUNTIF関数で行を新しく追加した
Excel(エクセル)
-
5
COUNTIF関数 参照先の列を可変にしたい
Excel(エクセル)
-
6
COUNTIFS関数 参照先の列を可変にしたい
Excel(エクセル)
-
7
[Excel]COUNTIFの検索範囲条件をセル参照でしたい
Excel(エクセル)
-
8
OFFSET,MAX関数併用で値を求める
その他(コンピューター・テクノロジー)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
Excelで並び替え後にア行...
-
エクセルで行の高さ及び列幅の...
-
基準日以前のデータを範囲を指...
-
EXCEL 最終行のデータを他のセ...
-
【Excel VBA】指定した行の最大...
-
急ぎ!色のついたセルを非表示...
-
EXCELで日付を比べ3か月以内の...
-
文字列を比較し、相違するフォ...
-
VBA 複数行の検索及び抽出
-
エクセル VBA 行間隔を飛ばした...
-
excel / ピポッド 日数を出したい
-
プルダウンに【なし、平均、デ...
-
エクセルの時刻のカウントが出...
-
オートフィルタ後のデータから...
-
マクロで行の高さを設定したい
-
エクセル関数について
-
VBA 配列で型がエラーになります。
-
時間の重複チェック
-
エクセル 1つのせるから3つ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
エクセルで行の高さ及び列幅の...
-
Excelで並び替え後にア行...
-
【Excel VBA】指定した行の最大...
-
エクセルの時刻のカウントが出...
-
オートフィルタ後のデータから...
-
急ぎ!色のついたセルを非表示...
-
EXCELで日付を比べ3か月以内の...
-
基準日以前のデータを範囲を指...
-
エクセル VBA 行間隔を飛ばした...
-
excel / ピポッド 日数を出したい
-
プルダウンに【なし、平均、デ...
-
マクロで行の高さを設定したい
-
エクセル関数について
-
文字列を比較し、相違するフォ...
-
EXCEL 最終行のデータを他のセ...
-
VBA 複数行の検索及び抽出
-
検索条件に合うセルの個数を数...
-
VBA 配列で型がエラーになります。
-
行の一番右のデータセルと同じ...
おすすめ情報