• ベストアンサー

Excelの関数

まず、Excelの関数ボタンを押すと毎回強制終了させられるのですが、直せますか? それから、質問です。 たとえば、sheet2のC列の(魚屋さん)D列(500円)をsheet1のA1(魚屋さん)と入っている行のC1にsheet2のD列の500円を入れるようにしたかったので、VLOOKUPを使って入れるようにしたのですが、コピーをして、別のセルに他の項目(八百屋さんとか)の時も同じようにしようと思ったら、sheet2に同じ項目がないのに魚屋さんの金額が出てしまいます。 項目がないときにsheet1のC1に何も記入されずにする方法を教えてください。 私はsheet1のC1に if(A1=””,””,VLOOKUP(A1,'sheet2'!A1:E10,4))にしました。他にあれば教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • crazy_dog
  • ベストアンサー率37% (148/391)
回答No.3

#1です。 当方の書き込み間違ってます。関数の最後はTRUEではなくFALSEです。また、このままでは、検索値がない場合は、"N/A"とエラーが表示されますので下記のように、 =IF(A1="","",IF(ISERROR(VLOOKUP(A1,Sheet2!B1:C5,2,FALSE)),"",VLOOKUP(A1,Sheet2!B1:C5,2,FALSE))) ISERROR関数を使用してください。 また、Sheet1のA1の項目が増え(下方に伸び)るのなら、範囲に$をつけて =IF(A1="","",IF(ISERROR(VLOOKUP(A1,Sheet2!$B$1:$C$5,2,FALSE)),"",VLOOKUP(A1,Sheet2!$B$1:$C$ 5,2,FALSE))) としておいたほうがいいでしょう。 VLOOKUP関数では、検索の型を指定しない場合、TRUEを指定したのと同じになります。検索の型のTRUEは、検索値が一致しない場合は、検索値未満で最も大きい値を使用します。だから、今回の場合は省略不可です。FALSEを指定してください。

hanasan
質問者

お礼

最後のFALSEを入力すると、この関数に対して多すぎる引用が入力されていますと出てきて、消すと#VALUE!が出てきてしまいます。 sheet2!B1:C5で出来なかったのでC1:D5にしてみたんですが・・ 。きっと私、どこか違うんですよね。もう一度やってみます。

その他の回答 (2)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

強制終了は、Excelを再インストールしてみて下さい。 項目チェックはC1に=IF(COUNTIF(Sheet2!$A$1:$A$10,A1)>0,VLOOKUP(A1,sheet2!$A$1:$E$10,4,FALSE),"")で如何でしょうか。

hanasan
質問者

お礼

再インストールはこのパソコンを買った時汎用?のものを使ってインストールしたため自宅にはないので後でお願いしてみます。 質問の方は、ちゃんとできました。ありがとうございました。

  • crazy_dog
  • ベストアンサー率37% (148/391)
回答No.1

こんにちは VLOOKUP関数は、 VLOOKUP("検索文字列","検索範囲","列番号","検索の型")で指定します。 検索範囲の一番左の列が検索文字列と同じならば列番号で指定した(検索範囲内)列の値を返すという関数です。したがって記載の式を見ると 'sheet2!A1:E10,4 ではなく、'sheet2!C1:D10,2 としたほうがいいのでは? =if(A1="","",VLOOKUP(A1,'sheet2!C1:D10,2,true))となると思います。

関連するQ&A