• ベストアンサー

Excelで最後に入力された数値により表示を変える方法

こんにちは。Excelについて質問があります。 例えば セルA1、A2、A3・・・と数値を入れていき 数値が1以上なら「合格」、0なら「不合格」と ”常にB1”に結果を表示させるにはどうすれば よいのでしょうか? IF関数で出来るかなと思ってやってみたのですが これだと初めに入力された方が勝ってしまい 2つ目以降の結果が反映されません。 具体的に申しますと、A1が3だった場合、B1に「合格」と表示 されますが、次にA2に0と入力してもB1が「不合格」に変わってくれず 「合格」のままなのです。 初歩的な質問で恐縮ですが どなたか教えて頂けませんでしょうか。 ちなみにExcelのバージョンは2007です。 よろしくお願いします。

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

  • ベストアンサー
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.3

=IF(OFFSET(A1,COUNT(A:A)-1,0)=0,"不合格","合格") でいけるかな、A列に入力なしだとエラーになるけど。

noname#89123
質問者

お礼

あ!これです! お陰様で上手く出来ました。 どうもありがとう御座いました。

その他の回答 (4)

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.5

>セルA1、A2、A3・・・と数値を入れていき A列に順に入れていくとして =IF(LOOKUP(10^10,A:A),"合格","不合格")

noname#89123
質問者

お礼

こちらでも上手く出来ました。 色々な方法があるもんなんですね。 勉強になります。 どうもありがとう御座いました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

A列限定で、A2から下のセルに0より大きい値が入力されたら「合格」、0以下であれば「不合格」と、行番号を問わずつねに最新の入力データにあわせてA1に表示させるということですか? ならば関数では無理ですね。 以下をお試しください。 1.そのようのうな設定をそたいシートのシートタブ(Sheet1とか書いてある部分)を右クリックし、「コードの表示」を選択。 2.出てきたVisualBasicEditor(白い部分)に下記のコードをコピペ。 '*****ここより下をコピペ***** Private Sub Worksheet_Change(ByVal Target As Range) Dim myStr As String If Target.Row = 1 Then Exit Sub If Target.Column <> 1 Then Exit Sub If Target.Value > 0 Then myStr = "合格" Else myStr = "不合格" End If Range("A1").Value = myStr End Sub '*****ここより上までをコピペ***** 3.AltキーとF11キーを同時に押してワークシートへもどります。 A2以下のセルにお好きな数字を入れてみてください。

noname#89123
質問者

お礼

私には未知の世界でしたが 概ね欲しい結果が得られました。 このような方法もあるのですね。 少しずつ勉強したいと思います。 どうもありがとう御座いました。

  • 374649
  • ベストアンサー率38% (203/527)
回答No.2

A列の判断を常に "B1" のセルに表示するには B1を絶対番地にすればよいのです。 "$B$1" 相対番地、絶対番地ぐらいはご自分で学んでください、自分でやらないといつまでも??????

noname#89123
質問者

お礼

地道に努力致します。 どうもありがとう御座いました。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

A列に1以上の数字が一つでもあれば合格という意味ですよね? B1に =IF(COUNTIF(A:A,">=1")>0,"合格","不合格")

noname#89123
質問者

お礼

私の説明が下手だった為に誤解を招いてしまったようで 申し訳ございません。 教えて頂いた関数ですと、今ひとつ欲しい結果には至りませんでしたが 今後の勉強材料とさせて頂きます。 どうもありがとう御座いました。

関連するQ&A

専門家に質問してみよう