プロが教える店舗&オフィスのセキュリティ対策術

=IF(AND(COUNTIF(D2:M2,"")=10,N2>0),"見積もり参加なしのため不調",IF(D2<>"",IF(INDEX(D5:M5,MATCH(ROW($B$1),D6:M6,0))>N2,"予算額超過のため不調",IF([01_1共通入力.xlsx]見積状況!$H$8<>"",[01_1共通入力.xlsx]見積状況!$H$8,IF(COUNTIF(D6:M6,"1")>1,"抽選決定へ",IFERROR(INDEX(D2:M2,MATCH(ROW($B$1),D6:M6,0)),""))))))

=IF(AND(COUNTIF(D2:M2,"")=10,N2>0),"見積もり参加なしのため不調",IF(D2<>"",IF(INDEX(D5:M5,MATCH(ROW($B$1),D6:M6,0))>N2,"予算額超過のため不調",IF([01_1共通入力.xlsx]見積状況!$H$8<>"",[01_1共通入力.xlsx]見積状況!$H$8,IF(COUNTIF(D6:M6,"1")>1,"抽選決定へ",IFERROR(INDEX(D2:M2,MATCH(ROW($B$1),D6:M6,0)),""))))))

B列に表示する構文です。
応札者が無かった場合は、B列の上下段とも空欄になる想定ですが、#N/Aエラーが表示します。
関数の使い方や構文に問題があるのでしょうか。

表全体としてはM列(10社)N列は予算額です。

「IFERROR関数とINDEX、MATC」の質問画像

質問者からの補足コメント

  • もうお一方のご指摘も考慮しつつご指摘の箇所を再考してみました。
    最初に「該当なし」を計算し、最後の表示の前に、ご指摘のあった「エラー対策のない構文」を移しました。
    =IF(AND(COUNTIF(D22:M22,"")=10,N22=0),"",IF(AND(COUNTIF(D22:M22,"")=10,N22>0),"見積もり参加なしのため不調",IF(D22<>"",IF([05_1共通入力.xlsx]見積状況!$H$8<>"",[05_1共通入力.xlsx]見積状況!$H$8,IF(COUNTIF(D26:M26,"1")>1,"抽選決定へ",IF(INDEX(D25:M25,MATCH(ROW($B$1),D26:M26,0))>N22,"予算額超過のため不調",IFERROR(INDEX(D22:M22,MATCH(ROW($B$1),D26:M26,0)),"")))))))

      補足日時:2016/10/14 20:53
  • お二方のどちらのご指摘も、素人の自分には大変参考になりました。
    より具体的にご指摘いただいたd-q-t-p様をベストアンサーとします。

      補足日時:2016/10/14 20:58

A 回答 (2件)

> B列に表示する構文です。


「数式」です。

「MATCH(ROW($B$1),D6:M6,0)」この部分のエラー対策がないのが原因
だろうと思いますけど 自分で訳が分からなくなっているのなら IF関数のネ
ストで全部対応するようなのは止めておいた方がいいです。計算を分ければ
何が問題なのかもすぐ分かるはずですし。

そもそも 順位にダブりはないのですか? MATCH関数を順位に対して実行
するのなら その辺を考えておく必要があると思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考にして、構文を考えてみます。

お礼日時:2016/10/13 22:29

=IF(


  AND(COUNTIF(D2:M2,"")=10,N2>0)
 ,
  "見積もり参加なしのため不調"
 ,
  IF(
   D2<>""
  ,
   IF(
    INDEX(D5:M5,MATCH(ROW($B$1),D6:M6,0))>N2
   ,
    "予算額超過のため不調"
   ,
    IF(
     [01_1共通入力.xlsx]見積状況!$H$8<>""
    ,
     [01_1共通入力.xlsx]見積状況!$H$8
    ,
     IF(
      COUNTIF(D6:M6,"1")>1
     ,
      "抽選決定へ"
     ,
      IFERROR(INDEX(D2:M2,MATCH(ROW($B$1),D6:M6,0)),"")
      )
     )
    )
   )
  )

めんどくせーな。
 INDEX(D5:M5,MATCH(ROW($B$1),D6:M6,0))>N2
の後に
 IFERROR( INDEX(D2:M2,MATCH(ROW($B$1),D6:M6,0)) ,"")
がでてくる。
これが間違っているような気がする。
先にIF関数の条件になっている「>N2」ここでエラーが出ていると思うんだな。
    • good
    • 0
この回答へのお礼

参考にして、構文を考えてみます。

お礼日時:2016/10/13 22:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!