• ベストアンサー

Excell2002でのデータ処理

Excell2002でのデータ処理に関数の使用を考えてます。 例えば、以下のようなデータがあります。 A列, B列 ,C列 1 , 10 ,  2 , 12 , 3 ,  8 , 10 5 , 15 , 8 8 , 20 , 9 , 18 , 10 , 16 , 20 ・ ・ (列がきれいに表示されてませんが!) A列は通し番号でありますが、中にはA列B列ともに同じ行で欠測値があります。 要はC列に「A列ー2の行」のB列の値を入れたいのです(上記C列参照)。 勿論B列に欠測値があるので該当する値がなければ「ブランク」とします。 ⇒C列にどのような関数を使えば良いのでしょうか? ⇒IF関数かとは思いますが・・・? ご教示ください。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

>この部分は「0」あるいは「1」ですよね・・・? >「IF関数」でこの引数は「論理式」で、 >ここで「COUNTIF関数」を使用する意味を解説してください。 IF関数は、 =IF(条件,真の場合,偽の場合) という書式ですが、実際は、この条件が、 0→偽の場合を処理 0以外→真の場合を処理 という動作をします。 で、条件を論理式にすると、論理式の戻り値、TRUE/FALSEは、 TRUE=1 FALSE=0 に変換されて判定されます。 だから、COUNTIF関数のような数値を返す関数でもOKなわけです。 数式が短くなるように、このような書き方をしましたが、意味を考えると、 =IF(COUNTIF($A$1:$A$7,A1-2)=0,"",VLOOKUP(A1-2,$A$1:$B$7,2,FALSE)) の方が直感的にわかり易いですね。

noname#211914
質問者

お礼

maruru01さん、再度回答ありがとうございます。 又一つ勉強になりました。 今後ともよろしくお願いします。

その他の回答 (2)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 C1に、 =IF(COUNTIF($A$1:$A$7,A1-2),VLOOKUP(A1-2,$A$1:$B$7,2,FALSE),"") と入力して下の行へコピーします。

noname#211914
質問者

補足

maruru01さん、回答ありがとうございます。 これで解決出来そうですが、もう少しご教示ください。 >COUNTIF($A$1:$A$7,A1-2) この部分は「0」あるいは「1」ですよね・・・? 「IF関数」でこの引数は「論理式」で、ここで「COUNTIF関数」を使用する意味を解説してください。 再度よろしくお願いします。

  • kmb01
  • ベストアンサー率45% (63/138)
回答No.1

A列が昇順ならばC3以降に、 =IF(ISERROR(VLOOKUP(A3-2,A1:B7,2,FALSE)),"",VLOOKUP(A3-2,A1:B7,2,FALSE)) でいけると思います。

noname#211914
質問者

お礼

kmb01さん、回答ありがとうございます。 解決できそうです。

関連するQ&A

専門家に質問してみよう