- ベストアンサー
スプレッドシートで条件に応じて演算子を変動させたい
複数の数に対して四則演算を様々当てはめた時の計算結果を一覧にしたいと思っています。 例えば2, 3, 4という三つの数字なら、2+3+4=9や2-3x4=-10といった具合です。この場合は、4の3乗なので64通りの式ができます。 表計算ソフトは値が変動することには適していますが、式自体が変わることにも対応できたりしますでしょうか? 当然ですが、セルに演算子をいれておいて&で結合しても文字列になるだけで、求めるものにはなりません。 ifで分岐させようにも結局64通りの分岐ができるだけで、式を手入力した方が速いです。 最終的に目的が達成されればどのような方法でも大丈夫です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> セルに演算子をいれておいて&で結合しても文字列になる 文字列となった数式を計算させることはできますが、希望している一覧を出す方法と一致するかどうかは・・・ セルに入力した数式を別のセルで計算する http://officetanaka.net/excel/function/tips/tips57.htm
その他の回答 (2)
- luka3
- ベストアンサー率72% (452/621)
すみません、最後の演算子を増やした64通りの時、B1の式はこうなります B1:=MID("+-*/",MOD((ROW()-1)/4,4)+1,1) 演算子の計算式を、演算子の変化が大きい順に並べるとこうですね。 除算のところが4倍になっていくのがわかるかと思います。 =MID("+-*/",MOD(ROW()-1,4)+1,1) =MID("+-*/",MOD((ROW()-1)/4,4)+1,1) =MID("+-*/",MOD((ROW()-1)/16,4)+1,1) =MID("+-*/",MOD((ROW()-1)/64,4)+1,1)
- luka3
- ベストアンサー率72% (452/621)
演算子が入るのは2箇所なので、4×4で16通りですね。 私も最初にこの質問を見た時に、No.1さんが提示したページを見つけていて、エクセルならそれほど手間なく実現可能と思いましたが、タイトルにスプレッドシートとあったので、エクセル以外を希望なのかとスルーしていました。 いちおう、エクセルでやってみました。 A1からA3に値を入力、演算子をB・C列に行番号を元に計算、D列で式を結合、E列で例のサイトによる名前定義を使ったD列式の計算、という具合です。 B1:=MID("+-*/",(ROW()-1)/4+1,1) C1:=MID("+-*/",MOD(ROW()-1,4)+1,1) D1:=$A$1&B1&$A$2&C1&$A$3 E1:=計算 (名前定義で「計算」=EVALUATE(D1) を登録) (B1~E1を16行目までコピペ) Googleスプレッドシートでできるのか調べてみたところ、GASのeval関数を使うことで同様にできそうな気がします。 https://zzz-kbd.hateblo.jp/entry/2024/09/19/083844 16通り程度なら手入力でもいけるでしょうが、表計算ソフトを使うメリットは数字(演算子)が増える場合でしょうね。 ちなみに、もう1つ増やした場合の演算子は =MID("+-*/",(ROW()-1)/16+1,1) で全64通りになります。
お礼