• ベストアンサー

エクセル(関数)について

あるD1に「=INDEX(A5:C7,A1,)」の関数が入力しています。 A1が無入力の場合、D1に「#VALUE!」の表示が出ます。 A1が無入力の時、D1に表示が出ないよう空白にするには、どうしたらいいのでしょうか。 よろしくお願いします。

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

  • ベストアンサー
  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.3

> 完全な間違いをしていました。 > 「=INDEX(A5:A7,A1)」です。 No.1の方がご回答されている数式を訂正すれば、下記のようになりますが、・・・ =IF(A1="","",INDEX(A5:A7,A1))

morito_55
質問者

お礼

ありがとうございました。

その他の回答 (2)

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.2

まず最初に =index(A5:C7,0) という式は成り立ちます インデックス文は第二引数がヌルまたは0の場合 配列要素全てを返すという仕様があるので 第三引数があれはあったなりの 無ければ無いで何ら問題にしません ※) これはヘルプに明記されています なので 配列数式をするものでは =index(A5:C7,) =index(A5:C7,,) とするのは常套句なのですが 今回の此の式は ヌルのままだと式を評価する際に 式の区切りを誤認識されるので =index(A5:C7,0,) と変形させたものですね この質問で エラーが出ているのは 配列数式の内のどの要素を示していいか エクセルが判断つかないからだと思います 試しにD1の式を表示させ 式全体を選択して反転表示した上で ウインドウズ上ならF9を押すと 配列数式としてA5:C7の内容か全て表示される筈です ここまではいいとして 問題となる点は 何ら入力か無いセルをどうエクセルが捉えるか どう置き換えを行うかという エクセルのバージョンとか その時々のマイクロソフトの振る舞い次第で回答が変わる 微妙な内容なのですね なのでなんとも言えないのですが ※) マイクロソフトは告知無しに内部を弄り回すので まあ恐らくはまだ0と認識されると思います だとすると コントロルー+シフト+エンターで配列数式としてD1を {=index(A5:C7,A1,)}と入力しておいて その上でA5を""にすれば A1が""でも D1も""になると思います 他にも方法があるかとも思いますが 寝てないので此のくらいで 間違っていたら済みません

morito_55
質問者

補足

間違いをしていました。 「=INDEX(A5:A7,A1)」です。 すみません、よろしくお願いします。

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.1

>A1が無入力の場合、D1に「#VALUE!」の表示が出ます。 数式に誤りがありますね、A1に入力されても「#VALUE!」と表示されませんか INDEX関数は、INDEX(配列,行番号,列番号)で列番号が不足しています。 B1を列番号として A1,B1何れも入力なしのときの式の1例です =IF(OR(A1="",B1=""),"",(INDEX(A5:C7,A1,B1)))

morito_55
質問者

補足

そのとおりです。 完全な間違いをしていました。 「=INDEX(A5:A7,A1)」です。 すみません、よろしくお願いします。

関連するQ&A

専門家に質問してみよう