• ベストアンサー

SMALL関数についてお聞きします。SMALL(範囲、順位)の順位はオ

SMALL関数についてお聞きします。SMALL(範囲、順位)の順位はオートフィルで、1,2,3,4、と増やしていくことは、できないのでしょうか? 何か、ほかの方法があるのでしょうか? ぜひ、回答お願いします。

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

  • ベストアンサー
  • soixante
  • ベストアンサー率32% (401/1246)
回答No.2

ご質問の回答は既に出ている答の通りです。 エクセルで関数を使う際にはこのような連番を使うことが多くあります。 ご参考までに以下にいろいろなパターンを記しておきますので、お試しください。 【1】 A1セルに =ROW() 【2】 B1セルに =ROW()*2-1 【3】 C1セルに =ROUNDUP(ROW()/5,0) 【4】 D1セルに =MOD(ROW(D5),5)+1 【5】 E1セルに =CHAR(ROW(E65)) 【6】 F1セルに =CHAR(ROW(F97)) 【7】 A1:F1を選択して、下にざっと引っ張ってみてください。 このように関数の組み合わせでいろいろなパターンを使えます。 さて、別の質問の内容についてここで書いて恐縮ですが、閉じられていたので少し書きます。 例の水入れ当番のコードについて、私も大変興味があったので、この数日、解読を試みてきました。 かなり高度なロジックで組み立てられているようで、全ては解読できませんでした。 あのコードの構成を簡単に記しますと、 各種変数の宣言 (Dim で始まってる部分) 期間=90、人数=21 とセット 氏名、回数という変数を再宣言(Redim で始まる部分)…ここは配列について調べてみてください。 最初の For ~ Next i のループでは 氏名、回数 と言う変数にAさんからUさんの名前とそれぞれの回数をセットしています。 次の For ~ Next i のループがキモです。 その中の最初の For ~ Next j のループが終わった時には、 n1 は、その回数(i=1 つまりAさんの場合には23回)と同じ人が何人いるかを示しています。 n2 は、その回数 の人の中で何番目か(i=1 つまりAさんの場合、23回です。23回の人は2人いますが、Aさんはその2人のうちの1番目)を示しています。 すなわち、i=1 の時の ここのループが終わった時、n1=2、n2=1 となります。 i=2(Bさん)の時には、 n1=2、n2=2 です。 i=20(Tさん)の時には、 n1=7、n2=6 です。 p はそれぞれの人の適性間隔。Aさんなら、90日÷23回=3.913・・・ 次のFor ~Next j のループで、それぞれの人のそれぞれの回が何日目にあたるかを算出しています。 q というのがそれです。 q の最初の部分、p*(n2-0.5)/n1 がその人の1回目の日時を示していて、 +p*(j-1) を足していくことによって、適性間隔を足していっています。 その中のFor ~Next k のループで、当番と、その当番の日にちを出しています。 最後の For ~ Next n はその結果をシートに転記するためのものですから別に難しくはありません。 私は、q の式をどうしてこのようにしたのか、ということと、For ~ Next k の部分が解読できていませんので、勉強中です。 別の質問への解答欄へ記入してすみません。 あなたもいろいろ研究されてどうしても、ということで再質問される場合には、コードを一部記載しても回答が付かないと思われるので、その場合は、このコードが載っている質問(6068226)を提示した上で質問したほうがよいと思います。

noname#116564
質問者

お礼

ありがとうございます。 ここまでして回答くださってありがとうございます。感激です。 もう、あきらめかけてました。n,n1,p・・・・とはその事だったのですね。 もういちど、解読して、マクロで作ることができるようにしてみたいです。 質問を一部しか記載しなかったのは、この回答をいただいた方に失礼かと思ったし、一部の抜粋では質問にならない事もわからないような私のレベルの低さとしかいいようがないです。 たくさんの方からの指摘を受けて、正直相当落ち込んでましたが、 soixanteさんの今回の回答で、救われた気分です。 本当にありがとうございました。 いい週末が過ごせそうです。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

縦方向ならROW関数、横方向ならCOLUMN関数を利用します。 =SMALL(範囲,、ROW(A1))

noname#116564
質問者

お礼

ありがとうございます。 なかなか本で見てもみつからなかったことです。 役にたちます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • SMALL関数についてお聞きします。SMALL(範囲、順位)の順位はオ

    SMALL関数についてお聞きします。SMALL(範囲、順位)の順位はオートフィルで、1,2,3,4、と増やしていくことは、できないのでしょうか? 何か、ほかの方法があるのでしょうか? ぜひ、回答お願いします。

  • SMALL関数について

    SMALL関数についてですが、0以下の値を除く順位を出したいのですがうまくできません。 以下の表だと=SMALL(A1:A6,3)とすると0が返ってきます。 0以下を除いた3番目のデータ「3」が返ってくるようにするにはどうしたらいいのでしょうか? A1 1 A2 2 A3 3 A4 -1 A5 0 A6 0

  • ExcelのSMALL関数について

    ExcelのB列(B2:B50)にフラグ「0」または「1」が入力されています。 フラグ「0」が入力されている行番号を関数を使用して取得したいと思っています。 B列のフラグは順次更新されており、フラグ「0」の個数は複数あります。 下記の関数式(以下多めにオートフィル)で上記のことができるようになったのですが、 =IF(COUNTIF(B$2:B$50,0)<ROW(A1),"",SMALL(INDEX((B$2:B$50<>0)*10^5+ROW(B$2:B$50),),ROW(A1))) SMALL関数式の部分↓↓の意味がよくわかりません。 SMALL(INDEX((B$2:B$50<>0)*10^5+ROW(B$2:B$50),),ROW(A1)) どなたかご教授いただけないでしょうか。

  • INDEX、SMALL、ROW関数と配列

    INDEX、SMALL、ROW関数で配列を利用した方法がうまく理解できません。 以下のURLで書かれている方法を理解したいのですが、いくつかわからない部分があります。 http://q.hatena.ne.jp/1291020662 (1)『それ以外は101を返す』とありますが、なぜ101なのですか? (2)SMALL関数は範囲(又は配列)と順位が引数ですが、 配列を表している部分『IF(B$1:B$100="男",ROW(B$1:B$100),101)』は、条件が男であるものを対象範囲とするという意味なのはわかるのですが、『ROW(B$1:B$100)』はなぜ必要なのでしょうか? 宜しくお願いします。

  • Excelで順位

    Excelでゲートボールの集計表を作っています。 全てのデータを1つのシートに入力しているのですが 男女の総合の順位、 男子のみ、女子のみの順位をそれぞれ出したいので、 表を打数順に並び替えたあとにオートフィルタで 男子のみ女子のみを抽出しましたが、 順位の欄がオートフィルやRANKの関数では 順番に出来ずに困っています。 何か方法があれば教えてください。 よろしくお願いします。

  • Excel 関数 SMALL

    Excel 関数についての質問です。 関数のSMALLのようにデータを降順に検索する機能で、 数値ではなく文字を返してくれるような関数ってないですか? 例えば、 【テスト点数】 A1 ヤマダさん B1 78 A2 ハヤシさん B2 55 A3 イシダさん B3 96 →順位(上記データとは違うセルに) 1位 イシダさん 2位 ヤマダさん 3位 ハヤシさん となるような関数探してます。 ご存知の方はご回答お願い致します。

  • 順位をつける範囲について

    以下のようなデータがあります。   A  B 1 あ 3.0 2 あ 3.0 3 あ 3.0 4 あ 3.0 5 い 1.5 6 い 1.5 7 あ 3.0 8 あ 3.0 9 い 1.5 10 い 1.5 11 う 6.8 12 う 6.8 この「あ」「い」「う」の順位を決定するのに、C列にRANK関数を使って範囲をB1:B12にすると   A  B   C  D 1 あ 3.0  5  2 2 あ 3.0  5  2 3 あ 3.0  5  2 4 あ 3.0  5  2 5 い 1.5  1  1 6 い 1.5  1  1 7 あ 3.0  5  2 8 あ 3.0  5  2 9 い 1.5  1  1 10 い 1.5  1  1 11 う 6.8  11  3 12 う 6.8  11  3 となります。でも実際には順位はD列のようにならないといけないですよね。 A列の「あ」「い」「う」がアトランダムにある場合に(A列のどこに存在しても)D列のような順位を出す方法を教えてください。 よろしくお願いいたします。

  • vlookup関数でオートフィル

    関数をコピーしたいのですが、オートフィルを使うと範囲が一緒に一こまずつずれてしまいます・・・ 検索値はオートフィルさせて、範囲は固定することができますか?

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

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

  • 同順位のときに別な条件を用いて比較し順位を決める

    Excelで図のように同順位が出た場合、特定のセルとセルの値を比較して処理し、同順位がない状態にしたい時、どのような関数を組めばいいでしょうか。 競技:10分間で問題文をストレートコピーする。誤字脱字等があった場合にはエラーとし、1エラーにつき10文字分減らすものとする。 「純成績」で順位を競います。多い方が上位、少ない方は下位となります。 「純成績」は次のような方法で算出されます。 「純成績」=「入力した文字数」-「エラー数」✕10 しかしながら、図にあるように、RANK関数を使って「純成績」をもとに順位をつけると同じ「純成績」の場合は同順位となってしまいます。 理想としては、同じ「純成績」が存在する場合は、それぞれの「エラー数」を確認し、「エラー数」が少ない方を上位、「エラー数」が多い方を下位として、「順位」を表示させたいのです。 詳しくは図を御覧ください。 以上より、質問はこちらです。 Q.「E12(E2)」にどのような関数を設定すれば、実現できるでしょうか。 ※オートフィルを用いて「E18(E8)」までそれぞれ関数を入力するものとする。 ご回答よろしくお願いします。

専門家に質問してみよう