• ベストアンサー

スプレッドシートsmall関数パラメータの許容範囲

数字の小さいほうからの並び替えをしていて行き詰っています。 A列にa1からa1000まで適当な数字を並べ(無記載のセルはあっても同じ数字はない)、B列1行に =small($a$1:$a$1000,row(a1))と関数を入れドラッグすると231行目から”関数smallのパラメータ2の値231は許容範囲を超えています”と以降エラー表示になります。 ちなみに1000の値を500にすると115、100にすると30でエラーになります。 どのようにしたらこの問題が解決できるか悩んでいます。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.2

Excelのバージョンは? バージョンによって計算時に使用できるメモリの量が異なるようです。 質問を投稿するときはバージョンも提示された方が良いでしょう。 >B列1行に =small($a$1:$a$1000,row(a1))と関数を入れドラッグすると231行目から”関数smallのパラメータ2の値231は許容範囲を超えています”と以降エラー表示になります。 「ドラッグする」とは「オートフィルで下へコピーする」ことですか? Excel 2002と2013で検証しましたが再現できませんでした。(B1000までコピーできました) Excelのプログラムの一部が損傷しているかも知れませんので修復または再インストールしてみると良いでしょう。

1248hk
質問者

お礼

スプレッドシートですがExcel 2010でも結果は同じでした。 ただB1000 までコピーできたということで、検証ありがとうございました。 途中経過がいろいろありますので、プログラムミスがないか、再検討を行います(再インストールを含めて)。

その他の回答 (2)

  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.3

=Small(a1:a1000, 1) この関数は、下にコピーするわけではないので、「$」を付ける意味がありません。 「row(a1)」の意味が分かりません。 セル「A1」には何が入っているのですか? もし、「5」が入っていたとすると、「行5」と言っているのであって、何か数値が入るわけではありません。 今、「A1」から「A1000」の間で、一番小さい値を求めたいなら、単に「1」とすればいいのです。

1248hk
質問者

補足

A列には同じでない適当な数字が無記載も含め1,000個B列はそれを小さい数字から順次埋めていくので、1行に=small($a$1:$a$1000,row(a1))としてオートフィルをすることで2行目は2番目に小さい数、3行目は3番目に小さい数を入れるためです。「$}をつけないと選択範囲が行ごとに変わってしまいます。row(a1)は1番小さい、2番目に小さい・・・を指定するためrow関数を使っています。

  • kkkkkm
  • ベストアンサー率66% (1742/2617)
回答No.1

1000を10000にしてみてはいかがですか。

関連するQ&A