- ベストアンサー
あるセル内の計算結果を固定数値として違うセルに代入する方法
あるセルで計算した結果を違うセルの位置に固定数値として代入する方法はあるのでしょうか? 例えば、A1のセルに変数Xが入っており、B1のセルに変数Yが入っていたとします。 そしてC1のセルで、ある計算をしていたとします。 で、X=Yの条件を満たした時はC1のセルの計算結果の数値をセルD1に数値として自動で代入するという作業をやらせたいのです。 試しに適当なセルに、=IF(A1=B1,D1=C1,0)なんて式を作ってみましたが、当然のようにD1=C1なんて表現はできないのでエラーとなります。 D1のセルに=IF(A1=B1,C1,0)と入れれば、A1=B1の条件を満たした時だけはD1のセルにC1の計算結果が入りますが、D1のセル内が数値でなくあくまで条件式である以上、条件が変わればエクセル上のD1のセルの表示も変わってしまいます。あくまでC1の計算結果の数値をそのままD1に数値のデータとして入力させて記憶させておきたいのですが。 どうやったらいいのでしょうか? D1のセルに=C1と入れておけば、D1のセルにはC1の計算結果が常に表示されるわけですが、C1の計算自体が他のセルのデータによってその都度変動するため、D1も同じように変動してしまいます。 ですので、A1=B1を満たした時のC1の計算結果をD1に記憶させておくという作業をしたいわけなんです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
VBAでやってみました。 1.該当のシートのタブを右クリックし、「コードの表示」を選択。 2.出てきたVisualBasicEditor(白い部分)に下記のコードをコピペ。 '*****ここから下をコピペ***** Private Sub Worksheet_Calculate() If Range("A1").Value = Range("B1").Value Then Range("D1").Value = Range("C1").Value End If End Sub '*****ここより上までをコピペ***** 3.AltキーとF11キーを同時に押してワークシートへもどります。 これでご要望にかなうでしょうか。
その他の回答 (1)
残念ながらワークシート関数では不可能です。 マクロ(VBA)ならできるでしょうが... それにしてもタイミングが難しそう...
お礼
やっぱりワークシート上では無理だったんですね。 VBAを覚えると、エクセルでできることの幅は全然広がるのでしょうし、自分も覚えたいなと思ってきました。 タイミングはおっしゃるとおり、難しかったのでボタンで処理しました。 全てを自動実行とはいきませんでしたが、大分作業が楽になりました。
お礼
ありがとうございます。 見事にできました! タイミングはうまく取れないので、コマンドボタンで自分で押して 実行させることにしました。 今まで、手入力で作業していたものがボタンを1クリックで終える ことができるようになり、大変楽になりました。 本当にありがとうございました。