こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

エクセルの関数について。
エクセルの関数について困っています。エクセルの関数を使って、クイズ大会をしようと考えているのですが、
x7セルに”=IF(M7=1,X7+N4,IF(M7=2,X7+P3,X7))”
と入力しても「循環参照」
になり、計算できないのです。
自分としては、
M7が1なら、今あるX7の値にN4の値を加え、
M7が2なら、今あるX7の値にP3の値を加え、
M7が1,2以外なら今あるX7の値をそのまま表示したいのです。
どうすればよいか助言をよろしくお願いします。

※関数はどんな関数でも構いません。
※当方、Excel2010を使用しています。
※スクリーンショットも貼りつけておきます。

投稿日時 - 2011-12-19 19:26:59

QNo.7198891

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

こんばんは!
他の方が仰っているように別セルに表示させそれを参照するのが一番簡単だと思いますが・・・

どうしても!というコトであればVBAの一例です。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので
↓のコードをコピー&ペーストして、M7セルの数値を変更してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
If Intersect(Target, Range("M7")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Select Case Range("M7")
Case 1
Range("X7") = Range("X7") + Range("N4")
Case 2
Range("X7") = Range("X7") + Range("P3")
End Select
Application.EnableEvents = True
End Sub 'この行まで

※ N4・P3セルの数値がプラスの場合、M7セルを1・2とするたびにX7セルの数値はどんどん増えていきます。

こんな感じをご希望だったのでしょうかね?m(_ _)m

投稿日時 - 2011-12-19 21:39:14

ANo.3

この場合はマクロを使わないとだめですね。

ただ、やりたいことを書いた方がもっと楽なやり方が出ると思います。

投稿日時 - 2011-12-19 20:38:14

ANo.2

x7セルに”=IF(M7=1,X7+N4,IF(M7=2,X7+P3,X7))”

この関数を設定した時点で、X7セルには何の値もありません。(不定です。)

不定値に N4の値を加えても、 不定です。

不定値に P3の値を加えても、 不定です。

投稿日時 - 2011-12-19 19:51:26

ANo.1

循環参照の意味を理解していますか。

X7セルは参照するだけで、表示するセルは別にしましょう。
または本来X7セルに入れている値を他のセルに入れておき
演算結果をX7セルに表示させるようにする。

 =IF(M7=1,Y7+N4,IF(M7=2,Y7+P3,Y7))

などとし、X7セルに入れている値をY7セルに入れておくなどしましょう。


あるいはマクロを書くか…ですね。

投稿日時 - 2011-12-19 19:44:37

あなたにオススメの質問