プロが教えるわが家の防犯対策術!

エクセル2010を使っています。

AK12~AK30000の中の空白とエラーを含むセルの中の大きいものから順に、AK2~AK10まで9個抜き出したいと思います。

またAN列も同じ様に抜き出したいと思います。

LARGE関数ではエラーが出てしまい、抜き出せませんでした。

詳しい方、教えていただけませんか、よろしくお願い致します。

A 回答 (6件)

>AK12~AK30000の中の空白とエラーを含むセル



手抜きせず簡単なエラー処理をするだけです


例えば
AK12:
=今の式
 ↓
=IFERROR(今の式,"")

に変更し、LARGE関数も正常に機能します。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

ではエラーが出る可能性がある場所は、あらかじめIFERRORを設定しておけば良いという事でしょうか?

お礼日時:2014/09/28 02:43

Excel2010をご使用ならAGGREGATE関数が使用できます。



以下の式を入力して下方向にオートフィルしてください。

=AGGREGATE(14, 6, AK$12:AK$30000, ROW(A1))
    • good
    • 0

>エラーが出る可能性がある場所は



好きにすればよろしいですが、基本、エラーが出たら考えればいいことです。
AK12以下でエラーを出した式の側で処理する事も出来ますし、エラーを出した式がエラーを出した直接の原因の方で対処する事もできるかもしれません。
具体的なエラー処理の方法については、ご質問の範疇ではありませんので必要なら別途質問してください。




#少なくともエラーを残したまま、3万行の対象範囲に対して配列計算でやれば出来るといった、ちょっとそれってどうかなと首をかしげるようなアドバイスは出来ません。

もちろんあなたは言われたからやるんじゃなく、寄せられた回答のアドバイスを実際にそれぞれ実践して、確かに不都合の無いやり方で対処すれば良いことです。
    • good
    • 0

回答No.3の数式に誤りがありましたので訂正してください。


誤 =MAX(IF(ISNUMBER(AK$12:$AK30000),AK$12:AK$30000),ROW(1:1))
正 =LARGE(IF(ISNUMBER(AK$12:$AK30000),AK$12:AK$30000),ROW(1:1))
    • good
    • 0

LARGE関数の引数をIF関数で前処理すれば良いでしょう。


AK2へ次の数式を設定してAK10までオートフィルでコピーします。
=MAX(IF(ISNUMBER(AK$12:$AK30000),AK$12:AK$30000),ROW(1:1))
この数式はIF関数の返り値が配列となりますので数式の確定時にCtrlとShiftを押しながらEnterキーの打鍵が必要です。

>またAN列も同じ様に抜き出したいと思います。
AK2からAK10をコピーしてAN2へ貼り付ければ目的に合うと思います。
    • good
    • 0

配列数式を使って、エラー値を空白に置き換えして、



=LARGE(IF(ISERR(AK12:AK30000),"",AK12:AK30000),1)

と入力してCtrl+Shift+Enterで決定とか。
    • good
    • 0

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