- ベストアンサー
エクセルで別のシートに計算式を使う方法とは?
- エクセル2000を使っている場合、別のシートに計算式を使いたい場合の方法を教えてください。
- Sheet1の特定のセルに数値を入力し、その数値を別のシート(Sheet2)の計算式で処理し、結果を自動的に表示したい場合、どのようにすればよいでしょうか。
- 具体的な例として、Sheet1のA1とB1に数値を入力し、Sheet2のA1とB1の計算結果をSheet1のC1に表示したい場合、どのような手順が必要でしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>Sheet1からSheet2を関数のように使いたいのです。 シート2のC1セルに記入する計算式を色々差し替えて計算結果を見たいというお話で,ぶっちゃけマクロか,マクロを使ったユーザー定義関数を作成してしまった方が簡単ですが,そこを敢えてエクセルの一般機能だけでやってみるとデータメニューの「テーブル」というのを利用することが出来ます。 かなりメンドクサイですけどね。 A列とB列の2つのパラメータと,シート2に代表で置いた数式で計算したいので,複入力テーブルという方法を使います。 手順: シート2のC1に =A1+B1 と代表数式を記入しておく。これを=A1*B1に変えたり,=A1*2+B1/2に変更してみたりする シート2のC2に =INDEX(Sheet1!$A:$A,ROW(A1)) と記入し,C21までコピーしておく シート2のD1に =INDEX(Sheet1!$B:$B,COLUMN(A1)) と記入し,W1までコピーしておく C1:W21を選択し,データメニューのテーブルを開始 行の代表セルに $A$1 列の代表セルに $B$1 をそれぞれ指定してOKする。 シート1のC1セルに =OFFSET(Sheet2!$C$1,ROW(A1),COLUMN(A1)) と記入し,C20までコピーしておく シート1のA1,A2…,B1,B2… にそれぞれ値を記入すると,計算結果がC列に現れる シート2のC1の数式をA1とB1を使った別の式に変更すると,新しい計算結果が自動的にシート1に反映される。 #うまくできなかったり,今のお話以上パラメータを増やしたい場合は,すなおにふつーのやり方を推奨します。 シート1のC1にA1,B1を使う数式を記入し,C2以下につらつらっとコピーしてやるだけのごく自然なエクセルの使い方でできることです。 #参考 新しいブックを用意 シート名タブを右クリックしてコードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub worksheet_change(byval Target as excel.range) if target.cells(1) = "" then exit sub on error resume next if target.address = "$C$1" then range("C1:C" & range("C65536").end(xlup).row).filldown end if if target.column < 3 then range("C1").copy destination:=cells(target.row, "C") end if end sub ファイルメニューから終了してエクセルに戻る C1にA1とB1を使う数式を記入する A1以下,B1以下に値を記入するとC列に数式が記入される C1の数式を変更すると,自動でC列に反映する。
お礼
稚拙な質問文を私の意図通りに理解していただきありがとうございます。 マクロやユーザー定義関数は、未経験なので何とかエクセルの通常機能で出来ないか、と思い質問させていただきました。 アドバイスいただいた、テーブル機能を調べて早速試してみます。 しかし、「簡単」という事なので、マクロやユーザー定義関数も試してみようと思います。 大変参考になりました。 ありがとうございました。