エクセルで数式に値を代入して一度に計算をする方法

このQ&Aのポイント
  • 数式に値を代入して一度に計算する方法についてエクセルやMathmaticaなどを活用した手法があります。
  • データ量が膨大な場合でも、複雑な計算を簡単に行う方法を知ることができます。
  • エクセルの場合、関数を使って値を一度に代入し、計算結果を表にまとめることができます。
回答を見る
  • ベストアンサー

エクセルで数式に値を代入して一度に計算をする方法

実験でu={kb(cosθ)(sinh2θ)^2}/{v(sinθ)^2(4πρr^2)}という式に各測定値を入れて計算結果を表にしたいのですが、θをほんの少しずつ変化させていったためデータ数が50個くらいあります。さらにまたrも少しずつ変化させていった場合のデータも取ったのでデータ数がかなり多いです。地道にu={kb(cosθ)(sinh2θ)^2}/{v(sinθ)^2(4πρr^2)}に変数をそれぞれ代入していけば良いのですが、データ量があまりに膨大なので出来るだけそれは避けたいです。 例えばエクセルでAの行にθ=0.5,1.0,1.5,...と変数、Bの行にそれに対応した値をuに代入した時の計算結果という感じに、θに値を入れればsinθなど全てのθの関数に値を一度に代入して計算をしてくれて表にする方法はありますか?Mathmaticaなどエクセル以外でも構いません。データ量が多くても複雑な計算をする手間が省ける良いやり方を知っている方がいればどなたか教えて下さい。お願いします。

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

  • ベストアンサー
回答No.2

θが 50 種類で、r が例えば 30 種類あったとして、それらの組み合わせの数は 50 x 30 = 1500、……というわけではなさそうですね。全体の測定の回数としては、精々、数百といった感じでしょうか。 実験としては膨大なデータ量なのかもしれませんが、Excel にとっては、数千行以内くらいであれば、通常はラクラク計算できる分量です。 お手元に現在どんなふうにデータが存在しているのか不明ですが、添付図と次式のような感じでいいのでしょうか? B2 0.5   など C2 2    など D2 1.04720 など E2 0.5   など F2 2    など G2 1    など H2 =b2*c2*cos(d2)*sinh(2*d2)^2/(e2*sin(d2)^2)/(4*pi()*f2*g2^2) なお角度が度数法で記録されている場合は、それを弧度法に変換する方法として、RADIANS 関数というものが Excel には用意されています。ヘルプの「関数参照」(関数リファレンス)を確認するなどしてください。いったん別セルに弧度法の角度を求めておいてそれを参照するのか、あるいは H2 セルの数式中の各「d2」を「radians(d2)」に書き換えて入れ子の構造にするのか、については、どちらでもよいと思います。 >データ量が多くても複雑な計算をする手間が省ける良いやり方を…… Excel の上級者ではない質問者さんがどのような手順で作業しようとしていて、手間だと感じていらっしゃるのかが、分かりません。 ダブルクリック 1 回だけで、オートフィル(多数の行に数式をコピー)してくれるので、表を作るだけなら、こちらとしては簡単なように思えるのですが。添付図の例で言えば、H2 に数式を記入して確定後、B ~ G 列の各行に必要データが記入されている状態で、H2 セルを選択。H2 セルの右下隅の角にマウスのポインタを乗せてダブルクリックすれば、3 行目以下に一瞬で数式がコピーされます。

kairosu
質問者

お礼

エクセルを使った事が殆どないので、右下隅のWクリックの事など初めて知りました。画像のfx=のような機能を探していました。おかげ様で作業が捗りそうです。 有難うございました。

その他の回答 (1)

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

これはエクセルのセル参照方法に対する説明でいいのかな。 こういう意味でなければ申し訳ありません。 c+d+e+b+a (d、d、eは定数) という式に対してbとaの組合せをするなら参照画像のようなことではないでしょうか。 式はただの足し算であるため計算結果が分かりやすいように桁をずらしています。 セルの参照形式でセルアドレス(A1、A2等)を指定する際に「$」を付けると excelのオートフィルをした場合や数式をコピーした際に列または行を固定できます。 A1を例にするとA列1行という意味ですので以下のようになります。 (1)「$A$1」はA列も1行も固定 (2)「$A1」はA列を固定とし、行数は数式のコピーしたセルに相対して変動 (3)「A$1」はA列は数式のコピーしたセルに相対して変動し、行数を固定 よってD2に入れた数式「$B$1+$B$2+$B$3+D$1+$C2」をH6までオートフィルした場合 変数aの参照セルは$C2~$C6まで相対的に変動し、 変数bの参照セルはD$1~H$1まで相対的に変動します

関連するQ&A

  • フォームのテキストコントロールに代入された計算式を計算したい

    VB.Netのイベントで、フォームのテキストコントロールに代入された計算式を計算したいのです。 (String変数に代入された値でも構いません) 計算式.textに "3*4+5"等の計算式が代入されているとします。 これを計算して結果を変数に代入させたいのですが、Textになっているので、どうすればよいか分かりません。 よい方法を教えて下さい。

  • エクセルでの値の自動代入

    エクセルでワークシートのセルからでもユーザーフォームからでもいいのですが、違うワークシート上の表(列が項目、行が日付)の当日日付のセルにマクロで作ったボタンを押すと値が挿入されるような方法はありますか? アクセスで値の代入のようにできればいいのですが。 マクロでもVBAでもいいのですが、できる方法はあるでしょうか?

  • MATLABシンボリックマスツールの代入計算

    MATLABシンボリックマスツールで組み立てた計算式にsubs関数を使用して変数を代入して解を得たいと考えています。 実際実行した結果ですが, cos(17377/7500) のように三角関数の所の計算が中途半端で止まってしまい,解をえることができません。 すべて計算させるためには,何か別に関数を入力することで可能になったりするでしょうか? 何か対応がありましたら,教えていただければと思います。

  • 三角関数の角度計算

    また質問してすいません。 ひとつ前の質問、行がずれて分数が正しく表示されてません・・ずらしてもらうとわかると思うのでが・・ 本題に入ります。 a=sin80 b=cos110 c=cos130 のとき 次の値を求めよ 問→ a+b+c これって角度の公式使うと a=cos10 b=-sin20 c=-sin40 になるから代入すると・・ a+b+c = cos10 - (sin20 + sin40) = cos10 - 2sin30cos10=0 で、ゼロになるらしいです。 でも代入した後の計算が何を意味しているのかが さっぱりわかりません。 いきなり2sin30cos10に変わっちゃってます。 教えてください。よろしくお願いします。

  • エクセルの数式が計算しなくなった。

    会社のパソコンでエクセルに数値を打ち込むのですが、打ち込んだ値の合計がでる、数式の入ったセルがあるのですが、ある日突然でなくなりました。数式は入っているのにです。 誰かが何かしたのか、変なボタンを押してしまったのか、原因もわかりません。 セルによっては、計算をしているセルもあって、その行だけ計算しないのです。しかもそのワークシートだけでなく、原紙も同じようになっているのです。会社の規則で、データをUSBに入れて自宅でするとかは、無理なのですが、困っているので、相談しました。よろしくお願いします。

  • エクセルを用いた計算についてです

     こんばんは  いつもお世話になっております。  下記画像にもございますが、 ・B2の値をG2に ・B2から9行目にあたるE11の値をJ2に ・画像には載せておりませんが、C2からC11の範囲内の最大値をH2に ・D2からD11の範囲内の最小値をI2に  代入したいと思っています。  つまり、各10行内での始値、終値、最大値、最小値を次々と計算し、値をGからJ列に代入していきたいと思っております(すなわち、1分足から10分足への変換でございます)。  なお、10,000行以上もございますため、手計算ではほぼ不可能な状況にございます。  もし、効率的な求め方がございましたならば、ご教示いただきますれば、幸甚に存じます。  それでは、よろしくお願い申し上げます。

  • ポインタ変数への値代入とアドレス値の代入について

    ポインタの扱いについて2点ほどありますが教えてください。 質問1:ポインタへの値代入    short data1[5];    short *pointa;     pointa = data1    (1)*(pointa + 1)=100;    (2)*pointa + 1 = 100;   という式があった場合、    (1)はdata1[1]の配列に100を代入する    (2)は命令違反的なことでコンパイルエラーが発生する   という理解でよろしいでしょうか? 質問2:アドレス値の代入    int var;(varのアドレス値は100番地)    int *ptr;    *ptr = &var; という式があった場合    ポインタ変数のptrには、番地が入るのではなく、100という数値が入るという判断でよろしいいでしょうか?    長い質問となっていますので質問1,2どちらか一方でも、余裕のある方がおりましたら両方についてご解答のほどよろしくお願いします。

  • Excelで値をコピーすると、隣の列にある数式が変更されてしまう

    Excel2007で、2003以前でなるのかは試していないのですが… 値を切り取って違うところに貼り付けすると、隣の列の計算式の参照先が変化してしまい困っています。 分かり辛いですが… sheet1とsheet2があります。 sheet1にはデータが入っており、sheet2でsheet1のデータを集計しています。 sheet1には C列に名前、D列にデータ、E列にデータが入ってます。 sheet2には B列に名前が列挙してあります。sheet1内の検索用です。 そしてC列に =SUMIF(sheet1!C$1:C$150, sheet2!$B1, sheet1!E$1:E$150)-SUMIF(sheet1!C$1:C$150, sheet2!$B1, sheet1!D$1:D$150) という計算式が入っています。 sheet1のC列の中で、名前(sheet2!$B1)が一致するE列の合計値からD列の合計値を引いた結果を集計しています。 そして、人数分この式がコピーされています。 他には見た目的な装飾以外には特に何も書かれていません。 ここで、sheet2の検索用の名前が減ったり、順番が移動したので、切り取って違う位置(同じ列です)に張り付けました。 例えば、5人分の名前を切り取って一つ上の行に張り付けします。 思いとしては、となりの計算式は当然変化せず再計算されて、計算結果も上の行に一つ分ずれる予定だったのですが、結果としては何故か数式が変化して、(sheet2!$B)の部分が移動した名前列を追いかけるように1個分変化してしまいます。(移動した5個分だけが数式変化します) 当然名前と計算結果の行がずれてしまい、具合が悪いです。 $で絶対参照にすると、数式をコピーした際に行移動した分が変化しないので、結局数式を1個1個変更することになるので面倒です。 かと言って、R1C1形式で相対参照にすれば解決する可能性もありますが(試してません)、多分R1C1形式に慣れて無い人が使えば混乱してしまう気がするので、なるべく避けたいです。 コピーして貼り付けする分には数式は変化しないので、とりあえずはそれで対処してます。 (コピーして貼り付けした後に不要な名前を削除) どなたか、解決方法か、こういう仕様である利点、もしくは自分の間違いを教えていただけないでしょうか。

  • 複素関数cos(z)の微分について

    w=u+iv=cos(z)とおいたときに,wがzの全域でコーシー・リーマン方程式(∂u/∂x=∂v/∂y,∂u/∂y=-∂v/∂x)を満たすことを示し,微分係数を求めよ.(z=x+iy,iは虚数単位) と言う問題です. 解答を見てみると,  cos(z)=cos(x)cosh(y)-isin(x)sinh(y) の加法定理の関係式を使い,  u=cos(x)cosh(y)  v=-sin(x)sinh(y) したがって,  ・∂u/∂x=-sin(x)cosh(y)  ・∂u/∂y=cos(x)sinh(y)・・・I  ・∂v/∂x=-cos(x)sinh(y)  ・∂v/∂y=-sin(x)cosh(y)・・・II よって,コーシー・リーマン方程式を満たしている. となっていました. 疑問なのは,複素関数cos(z)の微分について調べているのに,IとIIでそれぞれcosh(y),sinh(y)の微分をしていることです.  cosh(y)=cos(iy),isinh(y)=sin(iy) なので,これも複素関数の微分となり,ここでは使ってはいけないのではないのでしょうか? ほかの方法があれば教えてください.また,  {cosh(y)}'=sinh(y),{sinh(y)}'=cosh(y) となる理由もよろしくお願いします.

  • エクセルで関連セルの値を代入したいのですが

    お世話になります。    施設名  住所  電話番号       ○1    △1    □1      ○2    △2    □2      : : : 上記のような表をもつシートがあるとします。 上記とは別のシートで施設名を[データ]→[データの入力規則]→[リスト]の中から選択するように設定し、あるセルにその値が選択されたとき、別のセルに住所、電話番号のデータが自動的に入力されるようにしたいと思います。 たとえば、A1のセルにリストを設定しその中から○1を選択すると、A2のセルに△1、A3のセルに□1が代入されるようにしたいと思います。 また、上記の表は別のシートにあるので、シートをまたがってのリストの出し方をあわせてご教示しただけないでしょうか?

専門家に質問してみよう