• ベストアンサー

MMULT関数がわかりません。

すごく馬鹿な質問をしている気がするのですが・・・ EXCELのMMULT関数で  |AB 1|23 2|24 上は2×2のセルです。 2*3+2*4=14の結果を得たいのですが、 =MMULT(A1:A2,B1:B2) では、valueエラーが帰ってきます。 セルの書式は数値になっているのを確認しました。 助けてください。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

その場合は =SUMPRODUCT(A1:A2,B1:B2) ですね。 MMULTの場合は  |ABC 1|234 2|2 で =MMULT(A1:A2,B1:C1)で同様になります。 SUMPRODUCTは同方向の配列の積の和 2行1列×2行1列 MMULTは列方向と行方向の配列の積の和 2行1列×1行2列

guess_manager
質問者

お礼

丁寧に事例を書いていただき、参考になりました。 助かりました。 ありがとうございました。

その他の回答 (2)

  • ipsum11
  • ベストアンサー率21% (55/251)
回答No.3

難しいことを考えないで、 「=C1*D1+C2*D2」 でいいのではないですか?

guess_manager
質問者

お礼

わかってないのに難しいことをして失敗しました・・・ しかし、膨大な数がある計算なので、関数を使いたいなと思ったのです。 サジェスチョンありがとうございました。

  • suzukikun
  • ベストアンサー率28% (372/1325)
回答No.1

ヘルプを見るとわかるのですが、MMULTは行列積を求める関数なので、お望みのものではないと思います。

guess_manager
質問者

お礼

やっぱり・・・。 高校の時も行列が全く理解できていませんでした。 ヒントをありがとうございました。

関連するQ&A

  • エクセル関数について

    エクセル関数について質問です。 前回の質問と似ています。以下のことは関数で可能でしょうか。 ・セルA1からA4には数値が入力される。 ・セルA1からA4のいずれかに入力された値をB1に返す。 ・セルA1からA4で二つ以上のセルに入力がある場合、B1には「ERROR」という表示を返す。 ・B1は桁区切り「#,###」スタイルにする。 以前教えていただいたこと等を参考に試してはみたのですが、思うような結果が得られませんでした。 関数に詳しい皆様、どうか教えていただけますでしょうか。 よろしくお願いいたします。

  • エクセルVBAとワークシート関数が違う答え?

    エクセル2013です。 A1セルからA100セルにすべて1%と入力されています。 BIセルに =SUM(A:A) と数式が入っており、100%と表示されています。 A,B列のセルの書式はすべてパーセテージです。 101行以下には何も入っていません。 C1セルに =B1=1 と数式が入っており、TRUEが表示されています。 標準モジュールに Sub test01() MsgBox Range("B1").Value = 1 End Sub と書きました。 実行したところFalseが帰ってきました。 なぜ、TRUEにならないのでしょうか? なお、 Sub test02() MsgBox Val(Range("B1").Value) = 1 End Sub とすると、TRUEが帰ります。 でも、Val関数はStringを数値化するものですよね? B1セルはもともと数値なのでVal関数で答えが変わるのも不思議です。 どなたか、わかるように教えていただけないでしょうか?

  • エクセルでの、関数を教えてください。

    エクセルでの、関数を教えてください。 A1セルの数値の条件に応じた計算結果をB2セルに自動表示させたいです。 A1セルの数値が0~499の時は、B2セルに「7500」と表示 A1セルの数値が500~1999の時は、B2セルに「A1*15」の計算結果を表示 A1セルの数値が2000~3999の時は、B2セルに「A1*14」の計算結果を表示 A1セルの数値が4000~4999の時は、B2セルに「A1*13」の計算結果を表示 A1セルの数値が5000~7888の時は、B2セルに「A1*11」の計算結果を表示 A1セルの数値が8000~9999の時は、「A1*9」の計算結果を表示 A1セルの数値が10000以上の時は、「A1*8」の計算結果を表示 詳しく教えていただけると助かります。 よろしくお願いします。

  • 関数 ="("&数値&")" と入力したときの数値の扱い

    単純な質問の上、確認だけになるかもしれませんが、ご存知の方いらっしゃいましたらお願いします。 例えば セルの値 A1:10 B1:20 A2:100 B2:200 セル C1に="("&A1+B1&")" セルの表示は(30) セル C2に="("&A2+B2&")" セルの表示は(300) という関数が入力されていて結果が表示されているとします。 セル C3に=C1+C2 とした場合、セルの表示結果は-330となり、こちらが思っていた330とは表示されませんでした。その為、計算結果が正しくえられるためには、セル C3に=-(C1+C2)と入力する必要があります。 これは、単純に括弧で括られた値を【マイナス数値】として判断した結果ということでしょうか?どうしてマイナスと扱われるのでしょうか? 書式設定でも括弧付きで表示は可能で、計算結果もこちらが思うとおりにえられるのですが、事情があり書式設定を使用しておりません。 どなたかご存知の方おられましたら、ご回答いただきますと嬉しいです。 よろしくお願いいたします。

  • EXCELのソルバーで関数を使う

    EXCELのソルバーを使うとき、目的関数のセルにエクセルの関数が入っていても解いてくれるんでしょうか? 行列の積、MMULTを目的関数のセルに入れたのですがうまくいかなくて。(変数の行列と定数の行列の積です) もしうまく行かない場合、A1*A5+A2*A6+… みたいな式を、効率よくだす方法はないでしょうか? まぁ10*10の行列なんで、コツコツやればすむんですが…

  • 関数で質問です。

    関数で質問です。 エクセル2002を使っています。 たとえば セルAに5を入力。 その下のセルBに3を入力。 その結果、3を入力したセルBの右側のセルB'に 4というように表示したい。 このように数字をセルAには0から9 セルAにも0から9まで入力して セルB'にはそれぞれ規則にあわせた数値を表示したい。 結果も0から9にしか設定はしないので10通りになります。 そんなことが出来たら嬉しいのですが・・・。 すみません。 何かうまい方法はありますか?

  • エクセルで数値の大きい方を返す関数がわかりません。

    エクセルで A1のセルに100 b10のセルに50 と数値が入っています。 関数を使って A1とb10を比較して大きい方の数値を 返す関数はどのようになりますでしょうか?

  • エクセルの関数について

    エクセルで、合計は、SUM関数を使いますが、数値がゼロのときに、 ゼロを表示しないようにするため、IF関数で、IF(A1=0,"",A1) と表示すると、今度は、その数値を使い足し算をしたとき、 エラーになってしまいます。(ゼロのときの値が""のため) 1.足し算、引き算の結果がゼロのとき、何も表示したくない 2.そのセルをさらに足し算、引き算したときにエラーにならない 方法を教えてください。

  • Excel:MMULT関数と平行移動

    お世話になります。ExcelでMMULT関数を利用していたのですが、ちょっと思った結果とことなっていた為、確認していたところ、平行移動の計算がおかしな状況になってしまいました。 問題の個所を簡略化して試したところ、以下のような感じになりました。 行ベクトル(10,10,10,0)をそれぞれの方向に100ずつ移動したい為、 (1,0,0, 100) (0,1,0, 100) (0,0,1, 100) (0,0,0, 1 )を行列A (10) (10) (10) (0 )を行列Bとし B'=B*A としたのですが、結果が(10,10,10,0)のまま。。。平行移動分を変更しても変化せずでした。 行ベクトルで説明している参考サイトが少なく、根本的に誤っているのかもしれませんが、MMULT関数利用において注意点等あるのでしょうか。 ご存じの方ご教示願います。

  • エクセルのif関数で

    エクセルのif関数でこれができるのかわかりませんが、 C1~C10の中の文字列の中にA1と同じ文字列があればB1に「1」を入れ、なければ「2」を入れるということをやりたくて B1のセルに IF(OR(C$1:C$10=A1),1,2) という計算式を入れました。 関数の引数の中の数式の結果では、正しい結果が表示されてるのですが、B1のセルには間違った結果が表示されます。 また、B2以下B20まで計算式をコピーするとB11以下は#VALUE!になってしまいます。 一つ一つを見てみると、どうやらセルに正しく表示されるのはAの行とCの行が=だった場合のみのようです。 #VALUE!が表示されているセルも含めて、数式の結果では正しい結果が出ているのにセルの表示が違っているのが納得できませんが、おそらく何かが間違っているのでしょう。 間違いを教えてください。 よろしくお願いします。

専門家に質問してみよう