アプリ版:「スタンプのみでお礼する」機能のリリースについて

ワークシートが”集計”、”東京”、”大阪”、、と複数あります。

”集計”のシート
”A1”には、”東京!A1”
”A2”には、”東京!A3”+”集計!A1”
”A3”には、”東京!A5”+”集計!A2”
               ・
               ・
としたいと思っています。
計算させたいデータ量がかなりあり、オートフィルで計算式をコピーしても
思うようにならず、困っています。
データ量が増えることも考えられるので、何か良い方法が無いでしょうか?
どうか御教示ください。

今は
”集計”のワークシートA1には、=IF(東京!A1="","0",東京!A1)
”集計”のワークシートA2には、=IF(東京!A3="","0",東京!A3+A1"
”集計”のワークシートA3には、=IF(東京!A5="","0",東京!A5+A2
                   ・
                   ・
としています。

宜しくお願いします。

A 回答 (5件)

>計算させたいデータ量がかなりあり、オートフィルで計算式をコピーしても


少ない手数でコピー処理(オートフィル)したいという意味ですか。
A2に下記式を張り付け、下にオートフィルします。
=IF(INDIRECT("東京!A"&ROW(A2)*2-1)="",0,INDIRECT("東京!A"&ROW(A2)*2-1)+A1)
A2を上にオートフィルしてエラーを発生させ、
A1の式の最後の +#REF! を +0 に直すとエラーが消えます。
なおA2の式の代わりに特殊なINDEXの式を使うこともできます。
=IF(INDEX(東京!A:A,ROW()*2-1)="",0,INDEX(東京!A:A,ROW()*2-1)+A1)
また東京!A1="","0",のような"0"を使うのはやめましょう。
この0は文字の0で、数値の0ではありません。(左詰めで表示されます)
    • good
    • 0
この回答へのお礼

示して頂いた計算式を理解して試してみようと思います。
有難うございます。
また、"0"の指摘も有難うございました。
指摘が無ければ、今後もずっとこのままの理解・使用しているところでした。
気付きを与えて頂いたということで、ベストアンサーとさせていただきたいと思います。
有難うございました

お礼日時:2012/12/27 18:08

ご質問の最初に示したことを式で表現すれば集計シートのA1セルには次の式を入力して下方にドラッグコピーすればよいでしょう。



=IF(ROW(A1)=1,東京!A1,INDIRECT("東京!A"&ROW(A1)*2-1)+OFFSET(A1,-1,0))

現在入力されている式の場合でしたら次の式をA1セルに入力して下方にドラッグコピーします。

=IF(ROW(A1)=1,IF(東京!A1="","",東京!A1),IF(NDIRECT("東京!A"&ROW(A1)*2-1)="","",NDIRECT("東京!A"&ROW(A1)*2-1)+SUM(A$1:OFFSET(A1,-1,0))))
    • good
    • 0
この回答へのお礼

計算式を示していただき有難うございます。
数式の意味を理解してやってみようと思います。
有難うございました。

お礼日時:2012/12/27 18:02

こんばんは!


一例です。

「集計」SheetのA1セルに
=IF(東京!A1="",0,東京!A1)

A2セルに
=IF(INDEX(東京!A:A,ROW()*2-1)="",0,INDEX(東京!A:A,ROW()*2-1)+A1)
または
=IF(OFFSET(東京!A$1,ROW(A1)*2,,1)="",0,OFFSET(東京!A$1,ROW(A1)*2,,1)+A1)

という数式を入れ、A2セルをオートフィルで下へコピーではどうでしょうか?

>ワークシートが”集計”、”東京”、”大阪”、、と複数あります。
とありますので、
同じ数式でSheetごとの集計を行いたい場合は
仮に「集計」SheetのC1セルに集計したいSheet名を入力するとします。

その場合、「集計」SheetのA1セルは
=IF(INDIRECT(C1&"!A1")="",0,INDIRECT(C1&"!A1"))

A2セルは
=IF(INDEX(INDIRECT(C$1&"!A:A"),ROW()*2-1)="",0,INDEX(INDIRECT(C$1&"!A:A"),ROW()*2-1)+A1)
または
=IF(OFFSET(INDIRECT(C$1&"!A1"),ROW(A1)*2,,1)="",0,OFFSET(INDIRECT(C$1&"!A1"),ROW(A1)*2,,1)+A1)

という数式を入れA2セルをオートフィルで下へコピー!

これで「集計」SheetのC1セルのSheet名を変更すれば
そのSheetの集計が表示されると思います。m(_ _)m
    • good
    • 0
この回答へのお礼

複雑な数式をよく理解してやってみます。
また、応用も示していただき本当に有難うございます。

お礼日時:2012/12/27 18:00

集計のA列はまず空っぽにしておきます。



A1だけ他のセルと数式が違うので、
=IF(東京!A1="","",東京!A1)
とします

A2じゃなくA3に
=IF(東京!A3="","",SUM(東京!A3,A1))
と記入します

A3:A4の「2個のセル」を選択、下向けにオートフィルドラッグします
ここまで間違えずに操作できていれば、A3,A5,A7…セルにそれぞれ数式が入ります。


次にA列を列選択
Ctrl+Gを押し
現れたダイアログでセル選択をクリック
現れたダイアログで空白セルにマークしてOK
空白の飛び飛びセルが選択されるので、その状態を崩さないように注意して右クリック、削除して上に詰めます

以上で、あなたが欲しかったその通りの数式が目的のセルにキチンと記入されます。


実は違うセルで違う事がしたくて、教わればできるだろうと思っていたときは、回答の手順をよく理解して応用してください。
    • good
    • 0
この回答へのお礼

丁寧に解説して頂き有難うございます。
数式の意味をよく理解してやってみようと思います。
有難うございました。

お礼日時:2012/12/27 17:56

indirect関数を使えばオートフィルが使えます。


http://www.kenzo30.com/ex_kisotyu/ex_ks_tyukyu9_ …
    • good
    • 0
この回答へのお礼

リンク有難うございます。
色々調べて理解、使用していきたいと思います。
有難うございました。

お礼日時:2012/12/27 17:54

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