エクセルの計算式とコピー方法について御教示ください

このQ&Aのポイント
  • エクセルの計算式とコピー方法について、御教示ください。ワークシートが複数あり、計算データ量が増える可能性があるため、効率的な方法を知りたいです。
  • 現在、複数のワークシートで計算式をコピーしていますがうまくいきません。データ量が増えるとますます困難になります。効果的な方法を教えてください。
  • エクセルの計算式とコピーに関して相談です。計算データ量が多く、オートフィルでコピーしても問題が発生します。効率的な方法を教えてください。
回答を見る
  • ベストアンサー

エクセルの計算式とそのコピーについて御教示ください

ワークシートが”集計”、”東京”、”大阪”、、と複数あります。 ”集計”のシート ”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                    ・                    ・ としています。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • basic_gg
  • ベストアンサー率50% (14/28)
回答No.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ではありません。(左詰めで表示されます)

ahaha1192
質問者

お礼

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

その他の回答 (4)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

ご質問の最初に示したことを式で表現すれば集計シートの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))))

ahaha1192
質問者

お礼

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

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 一例です。 「集計」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

ahaha1192
質問者

お礼

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

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

集計のA列はまず空っぽにしておきます。 A1だけ他のセルと数式が違うので、 =IF(東京!A1="","",東京!A1) とします A2じゃなくA3に =IF(東京!A3="","",SUM(東京!A3,A1)) と記入します A3:A4の「2個のセル」を選択、下向けにオートフィルドラッグします ここまで間違えずに操作できていれば、A3,A5,A7…セルにそれぞれ数式が入ります。 次にA列を列選択 Ctrl+Gを押し 現れたダイアログでセル選択をクリック 現れたダイアログで空白セルにマークしてOK 空白の飛び飛びセルが選択されるので、その状態を崩さないように注意して右クリック、削除して上に詰めます 以上で、あなたが欲しかったその通りの数式が目的のセルにキチンと記入されます。 実は違うセルで違う事がしたくて、教わればできるだろうと思っていたときは、回答の手順をよく理解して応用してください。

ahaha1192
質問者

お礼

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

回答No.1

indirect関数を使えばオートフィルが使えます。 http://www.kenzo30.com/ex_kisotyu/ex_ks_tyukyu9_9_5.htm

ahaha1192
質問者

お礼

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

関連するQ&A

  • 別シート上での計算

    先般もこちらでお世話になったものです。 データ入力用のシートに、 月 場所  出向者 1 東京   鈴木 1 名古屋  鈴木 1 大阪   田中 2 京都   佐藤 2 東京   田中 3 大阪   鈴木 3 東京   佐藤 と言うデータがあります。 出向者がどの場所に何回行ったという計算は、集計シート上に {=SUM((データ!B2:B7="東京")*(データ!C2:C7="鈴木"))} で計算できています。 今回は、A列の月(数字)を使って月別のシート上で計算させたいのですが、ちなみにIF関数を用いてやってみました。 {IF(データ!A2:A7=1,sum((データ!B2:B7="東京")*(データ!C2:C7="鈴木")),"")} これだとA2に1と入れるとA3~A7に他の数字が入っても、全データの集計が1月のシートに、A2に2と入れると、全データの集計が2月のシートで行われてしまいました・・・(--メ どなたか、うまく月別シートに分けられる方法をご教示くださいm(__)m

  • エクセルのオートフィルコピーについて

    横に並んでいるセルをオートフィルで縦方向にコピーすることはできるのでしょうか? 例えばsheet1のA1~E1に横並びに計算式を設定します。 A1の結果をsheet2のA1に設定します。 するとsheet2のA1には(=Sheet1!A1)という内容がセツトされます。 これをオートフィルで下にコピーすると A2(=Sheet1!A2) A3(=Sheet1!A3) A4(=Sheet1!A4) A5(=Sheet1!A5) となってしまいますね。 これを A2(=Sheet1!B1) A3(=Sheet1!C1) A4(=Sheet1!D1) A5(=Sheet1!E1) と参照させたいのです。 オートフィルだと無理なのでしょうか? もし可能な方法をご存知の方がいましたらご指導願えれば嬉しいです。

  • エクセルで連続してコピーするには

    いつもお世話になります。 オートフィルを使って値をコピーしたいのですが, コピー先に一行飛ばしでいれたいので,オートフィルを使うと,間に入っている行もカウントされてしまします。 例えば A1に「='Sheet1'!B2」を入れて, A2は空白,A3には「='Sheet1'!B3」と連続していきたいのですが…。 エクセル97です。よろしくお願いします。

  • エクセルのマクロについてご教示下さい。

    シート1のA1からW47までを同じワークシートのA48にコピーするマクロを作りましたが、 Worksheets("Sheet1").Range("A1:W47").Copy _ Destination:=Worksheets("Sheet1").Range("A48") Range("A48")を変数にし、(2回目は48+47 3回目は48+47+47 4回目は48+47+47+47)というように複数回コピーを繰り返したいのですが、とんと分からなくなりました、ご教示いただけますでしょうか? 宜しくお願い致します。

  • ExcelのCOUNTIFで条件の値に1を足す方法

    ExcelのCOUNTIFを使って集計をしています。 「Log」とういうシートのデータを固定で範囲指定(オートフィルで範囲が変わってしまうため)し、その中に「Sheet1」のA列のデータ(文字列:氏名)といくつ合致しているかを集計しようとしています。 =COUNTIF(Log!$B$7:$B$510,"*A1*") 上記数式をG1に入力しオートフィルでコピーしてもコピー先の数式は何も変わりませんでした。 =COUNTIF(Log!$B$7:$B$510,"*A2*")と手入力し再度コピーすると ・・・"*A1*"、・・・"*A2*"、・・・"*A1*"、・・・"*A2*"となるだけでした。 どうすればオートフィルでA1,A2,A3…となってくれるでしょうか? もし他の(簡単な)方法があれば教えていただければ幸いです。 使用ソフト:Excel2002 よろしくお願いいたします。

  • エクセルで計算式だけをコピーするには?またオートフィルを使えますか?

    エクセルで計算式だけをコピーするにはどうしたら出来ますか?またそれにはオートフィルは使えますか?教えていただけますか?よろしくお願いします。

  • エクセルでオートフィルを使いコピー 

    エクセルで表を作成しているのですが たとえば シート名2012のA1のセルに シート名2011のA1をコピーし シート名2012のA2のセルに シート名2011のB1をコピーしていくというように コピー先とコピー元が縦横になる場合、オートフィル機能が使えないようですが この場合どのような関数を作ればオートフィルで作業できますか? 沢山有るのでいちいち値をコピーして行列を入れかえて貼り付けの方法だと時間がかかってしまいます。 宜しくお願いします。

  • エクセルシートの行、列を変換して計算する。

    こんにちは。 オートフィルを使用して計算したいのですが、うまくいきません。 どなたか教えていただけないでしょうか? sheet1 A1 B1 C1 11 22 33 44 55 66 sheet2 A1 B1 =Sheet1!A1 → =Sheet1!A =Sheet1!B1 → =Sheet1!B2 =Sheet1!C1 → =Sheet1!C2         オートフィルで右にドラッグする。 A1 B1 11 44 22 55 33 66 のような結果にしたいと思っております。

  • エクセルで値として貼り付けた計算式

    エクセルで値として貼り付けた計算式を計算させたいです。 下記手順で送付先名の一覧を作りたいのですが、計算式を貼り付けた後、計算式の入っている各セルごとにダブルクリックかF2を押してアクティブにしたあとエンターを押さなければいけないので、一括で再計算できないものかと疑問に思っています。 どうぞよろしくお願いいたします。 エクセル2007を使っています。 ツールバー→数式→計算方法の設定では「自動」を選択しています。 郵送物1枚につき、シートを一枚使う形で、シート名は、シート1が「A4」、シート2が「A4(2)」シート3が「A4(3)」・・・という名前をつけています。 各シートのセルB9に送付先名が入っています。 列Aに「='A4 '!B9」「='A4 (2)'!B9」「='A4 (3)'!B9」という数式をオートフィルを使って1000行ほど入れたかったのですが、オートフィルが使えなかったので、下記の手順で行いました。 <手順> J1…「B9」と入力。 A列…、上から、A4、A4 (2)、A4 (3)...以下オートフィル。 B列…、上から、=CONCATENATE(A1,$J$1)、=CONCATENATE(A2,$J$1)、=CONCATENATE(A3,$J$1)... C列…、B列を値として貼り付け。 このC列の計算が自動で行えません。 以上、できないようでしたら、その旨もアドバイスお願いいたします。

  • エクセル:シートのコピーで計算を反映させる方法

    (1)エクセルでbook1とbook2があります。 (2)book2のシート1とシート2にデーターがありシート3に1と2の色々計算した結果があります。 (計算式はシート3のみシート1・2はデータのみ) (3)book1にシート1とシート2はbook2の表と同じでそこにデーターを打ってもらってます。 (book1はシート1・2のみでシート3はない) ● (4)現在はbook1とbook2を両方開いて、book1のシート1・2をコピーしてbook2にシート1・2に貼り付け book2のシート3で計算シートでデータを集計しております。 ●質問 (5)book2のシート3をbook1へ末尾へコーピーすると計算式がbook2のままでうまくいきません。 シートのコピーで計算を反映させる方法を教えてください。

専門家に質問してみよう