- ベストアンサー
SMALL関数についてお聞きします。SMALL(範囲、順位)の順位はオ
SMALL関数についてお聞きします。SMALL(範囲、順位)の順位はオートフィルで、1,2,3,4、と増やしていくことは、できないのでしょうか? 何か、ほかの方法があるのでしょうか? ぜひ、回答お願いします。
- みんなの回答 (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)を提示した上で質問したほうがよいと思います。
その他の回答 (1)
- MackyNo1
- ベストアンサー率53% (1521/2850)
縦方向ならROW関数、横方向ならCOLUMN関数を利用します。 =SMALL(範囲,、ROW(A1))
お礼
ありがとうございます。 なかなか本で見てもみつからなかったことです。 役にたちます。
お礼
ありがとうございます。 ここまでして回答くださってありがとうございます。感激です。 もう、あきらめかけてました。n,n1,p・・・・とはその事だったのですね。 もういちど、解読して、マクロで作ることができるようにしてみたいです。 質問を一部しか記載しなかったのは、この回答をいただいた方に失礼かと思ったし、一部の抜粋では質問にならない事もわからないような私のレベルの低さとしかいいようがないです。 たくさんの方からの指摘を受けて、正直相当落ち込んでましたが、 soixanteさんの今回の回答で、救われた気分です。 本当にありがとうございました。 いい週末が過ごせそうです。