アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excelバージョウン 2003 古いです
=SMALL($DO$3:$DO$50,ROW(A1))
=INDEX($DP$3:$DP$50,MATCH(SMALL($ED$3:$ED$50,ROW(A1)),$ED$3:$ED$50,0))
=INDEX($DR$3:$DR$50,MATCH(SMALL($ED$3:$ED$50,ROW(A1)),$ED$3:$ED$50,0))
以上の関数を作って作業しています。しかし、一定のところから#NUM!のエラーが出てきます
これを回避する関数を加えたいのですが、どのようにしたらよいでしょうか。教えていただけま
せんか。

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

  • つらい・・・

    IF(ISERROR($DP$3:$DP$50,MATCH(SMALL($ED$3:$ED$50<ROW(A1)),$ED$3:$ED$50,0),"",INDEX($DP$3:$DP$50,MATCH(SMALL($ED$3:$ED$50,ROW(A1)),$ED$3:$ED$50,0))
    このように、するということですか。でもこれでは、完成できないのですが、どのようにしたらいいですか。教えて頂けますか。

    No.3の回答に寄せられた補足コメントです。 補足日時:2017/09/07 21:19
  • うーん・・・

    これで、完成できました。しかし、№3の回答して頂いたところに補足をしてやってみましたが、他の2つが完成出来ないで困っています。ご協力頂けると有り難いのですが、どうでしようか。

    No.2の回答に寄せられた補足コメントです。 補足日時:2017/09/07 21:28

A 回答 (4件)

No.2です。



ISERROR関数を使う場合は同じ数式を二度使うようになりますが・・・
=IF(ISERROR(INDEX($DP$3:$DP$50,MATCH(SMALL($ED$3:$ED$50,ROW(A1)),$ED$3:$ED$50,0))),"",INDEX($DP$3:$DP$50,MATCH(SMALL($ED$3:$ED$50,ROW(A1)),$ED$3:$ED$50,0)))

No.2の方法の場合は
=IF(COUNT(ED$3:ED$50)<ROW(A1),"",INDEX(DP$3:DP$50,MATCH(SMALL(ED$3:ED$50,ROW(A1)),ED$3:ED$50,0)))

としたらどうなりますか?

※ 今回も未検証です。m(_ _)m
    • good
    • 0
この回答へのお礼

完成できました。下の方法でできあがりました。処理が早くなり助かります。

お礼日時:2017/09/09 18:26

tom04さんがおっしゃるようにSMALL関数で調べる範囲のセル数以上のランク(何番目)を指定しているために起きていると思います。



=SMALL($DO$3:$DO$50,ROW(A1))

では、47個のセルから、1番小さい値を表示しようとしていますが、この式をA48にコピーすると、47個のセル中48番目の数をさがそうとしてエラーとなります。

48番目以降の探索が必要なら、SMALL関数の引数の範囲を必要なだけ広げてください。

単にエラーの場合表示をなくしたいのであれば、tom04さんのやり方でもいいですし、エラーの場合、表示しないように、

=IF(ISERROR(式),"",式)

というようにすればいかがでしょうか。

※Excel2007以降では、IFERROR関数というのがあって、もうすこし簡潔にかけるのですが、2003にはなかったような気がします。IFERROR関数の場合は、

=IFERROR(式,"")

となります。
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2017/09/09 18:27

No.1です。



投稿後に気づきました。
SMALL関数を使っているというコトは参照先は「数値」だと思います。
前回の数式内のCOUNTA関数をCOUNT関数に変更し

=IF(COUNT($DO$3:$DO$50)<ROW(A1),"",SMALL($DO$3:$DO$50,ROW(A1)))

としてください。m(_ _)m
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2017/09/09 18:27

こんばんは!



>一定のところから#NUM!のエラーが出てきます

SMALL関数の関係でエラーが出ているのでは?
フィル&コピーし、ある一定行以上のセルでそのエラー表示になっていませんか?
例えばデータ数が5個しかない場合6行目以降にフィル&コピーすると
SMALL関数の6番目以降がないのでそのようなエラーになることがあります。

=IF(COUNTA($DO$3:$DO$50)<ROW(A1),"",SMALL($DO$3:$DO$50,ROW(A1)))
という数式にしてみたらどうなりますか?

※ 細かい検証はしていません。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2017/09/09 18:28

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