- ベストアンサー
エクセル2010 エラー行を含む LARGE関数
エクセル2010を使っています。 AK12~AK30000の中の空白とエラーを含むセルの中の大きいものから順に、AK2~AK10まで9個抜き出したいと思います。 またAN列も同じ様に抜き出したいと思います。 LARGE関数ではエラーが出てしまい、抜き出せませんでした。 詳しい方、教えていただけませんか、よろしくお願い致します。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
>AK12~AK30000の中の空白とエラーを含むセル 手抜きせず簡単なエラー処理をするだけです 例えば AK12: =今の式 ↓ =IFERROR(今の式,"") に変更し、LARGE関数も正常に機能します。
その他の回答 (5)
- MackyNo1
- ベストアンサー率53% (1521/2850)
Excel2010をご使用ならAGGREGATE関数が使用できます。 以下の式を入力して下方向にオートフィルしてください。 =AGGREGATE(14, 6, AK$12:AK$30000, ROW(A1))
- keithin
- ベストアンサー率66% (5278/7941)
>エラーが出る可能性がある場所は 好きにすればよろしいですが、基本、エラーが出たら考えればいいことです。 AK12以下でエラーを出した式の側で処理する事も出来ますし、エラーを出した式がエラーを出した直接の原因の方で対処する事もできるかもしれません。 具体的なエラー処理の方法については、ご質問の範疇ではありませんので必要なら別途質問してください。 #少なくともエラーを残したまま、3万行の対象範囲に対して配列計算でやれば出来るといった、ちょっとそれってどうかなと首をかしげるようなアドバイスは出来ません。 もちろんあなたは言われたからやるんじゃなく、寄せられた回答のアドバイスを実際にそれぞれ実践して、確かに不都合の無いやり方で対処すれば良いことです。
- bunjii
- ベストアンサー率43% (3589/8249)
回答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))
- bunjii
- ベストアンサー率43% (3589/8249)
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へ貼り付ければ目的に合うと思います。
- neKo_deux
- ベストアンサー率44% (5541/12319)
配列数式を使って、エラー値を空白に置き換えして、 =LARGE(IF(ISERR(AK12:AK30000),"",AK12:AK30000),1) と入力してCtrl+Shift+Enterで決定とか。
お礼
回答ありがとうございます。 ではエラーが出る可能性がある場所は、あらかじめIFERRORを設定しておけば良いという事でしょうか?