解答例
若し、、、わたしが関数を教える事になったとしたら
そんな発想で作った問題でした
Q&Aでよく見かけるのが
質問では、◯◯関数でこれをするには・・・
始めに使う関数有りきで考えている
回答でも同様で、大ならMAX・小ならMIN有りきの式
この問題、全く内容を変えずに質問の仕方だけを変えたとしたら
今回の様にランクは?と問えばRANK関数を使おうとするでしょう
数を数えて?と問えばRANK関数を使おうとはしないでしょう
始めは「無」であって決まったものは何も無し
ここの方達には関係のない事ですが、、、
<ランク>
{=SUM(N(B$4:B$13&0<B4&1))}
問題作成時に少々手を加え
良く言えば易しく、本当はお遊びで
それによりこの式でも
{=SUM(N(B$3:B$13&0<B4&0))}
微妙な違い、、、
<並び替え>
{=INDEX(B$4:B$13,MATCH(SMALL(CHOOSE(ROW($1:$10),SUM(N(B$3:B$13&0<B$4&0)),
SUM(N(B$3:B$13&0<B$5&0)),SUM(N(B$3:B$13&0<B$6&0)),SUM(N(B$3:B$13&0<B$7&0)),
SUM(N(B$3:B$13&0<B$8&0)),SUM(N(B$3:B$13&0<B$9&0)),SUM(N(B$3:B$13&0<B$10&0)),
SUM(N(B$3:B$13&0<B$11&0)),SUM(N(B$3:B$13&0<B$12&0)),SUM(N(B$3:B$13&0<B$13&0))),
ROW(A1)),CHOOSE(ROW($1:$10),SUM(N(B$3:B$13&0<B$4&0)),SUM(N(B$3:B$13&0<B$5&0)),
SUM(N(B$3:B$13&0<B$6&0)),SUM(N(B$3:B$13&0<B$7&0)),SUM(N(B$3:B$13&0<B$8&0)),
SUM(N(B$3:B$13&0<B$9&0)),SUM(N(B$3:B$13&0<B$10&0)),SUM(N(B$3:B$13&0<B$11&0)),
SUM(N(B$3:B$13&0<B$12&0)),SUM(N(B$3:B$13&0<B$13&0))),))}
このアホらしさ、、、
作業列としてD列を使えば
D列は<ランク>の式で
<並び替え>は
=INDEX(B:B,MATCH(SMALL(D:D,ROW(A1)),D:D,))
如何に作業列が必要であり、大事であるか
Q&Aに質問してくる方達に分かって欲しい
でも作業列は、、、嫌われているのが現状 (からくちさん)
◆ランクは、28{=SUM(N(0&B$4:B$13=0&B4))}
◆B14以下が空白であれば、
25{=SUM(11,-(0&B:B>=0&B4))}
◆ソートは、作り直して
115{=INDEX(B$4:B$13,RIGHT(SMALL(MMULT(N(0&B$4:B$13>TRANSPOSE(0&B$4:B$13)),1^ROW($1:$10))*100+ROW($1:$10),ROW(A1)),2))}
投稿情報: maron | 2013年3 月 2日 (土曜日) 午後 08時05分
◆解答の少し、失敗しましたので、再解答
◆ランクは、28{=SUM(N(0&B$4:B$13=0&B4))}
◆B14以下が空白であれば、
25{=SUM(11,-(0&B:B>=0&B4))}
◆ソートは、作り直して
115{=INDEX(B$4:B$13,RIGHT(SMALL(MMULT(N(0&B$4:B$13>TRANSPOSE(0&B$4:B$13)),1^ROW($1:$10))*100+ROW($1:$10),ROW(A1)),2))}
投稿情報: maron | 2013年3 月 2日 (土曜日) 午後 08時09分
◆すみません、もう一度、
◆ランクは、28{=SUM(N(0&B$4:B$13=0&B4))}
◆B14以下が空白であれば、25{=SUM(11,-(0&B:B>=0&B4))}
◆ソートは、作り直したら長くなりましたが、
115{=INDEX(B$4:B$13,RIGHT(SMALL(MMULT(N(0&B$4:B$13>TRANSPOSE(0&B$4:B$13)),1^ROW($1:$10))*100+ROW($1:$10),ROW(A1)),2))}
投稿情報: maron | 2013年3 月 2日 (土曜日) 午後 08時13分
3年近く前、みんなでやった時の式を今回の問題に移植したものです。
105{=INDEX(B:B,RIGHT(SMALL(MMULT(N(TRANSPOSE(B$4:B$13&0)<=B$4:B$13&0),O1:O10+1)/1%+ROW($4:$13),ROW()-3),2))}
投稿情報: min | 2013年3 月 2日 (土曜日) 午後 08時14分
◆ランクの26の回答が26{=SUM(N(0&B$3:B$13<0&B4))}
投稿情報: maron | 2013年3 月 2日 (土曜日) 午後 08時16分
ランク
17:=MATCH(B4,F:F,)-3
26:{=SUM(N(9&B$3:B$13<9&B4))}
ソート
83:{=SMALL(B:B,RIGHT(SMALL(LEFT(B$4:B$13/1%^5&0,12)+RANK(B$4:B$13,B:B,1),ROW()-3),2))}
94:{=MOD(SMALL(MMULT(N(TRANSPOSE(9&B$4:B$14)<9&B$4:B$13),A1:A11+1)/1%^6+B$4:B$13,ROW()-3),10^10)}
2007以上限定112
{=IFERROR(REPLACE(SMALL(LEFT(B$4:B$13&REPT(0,14),14)+LEN(B$4:B$13)/1%+(12-LEN(B$4:B$13)),ROW(A1)),13,,"E-")*1,)}
今回はくたびれました、、、
投稿情報: む印 | 2013年3 月 2日 (土曜日) 午後 08時17分
あら、maronとほとんど同じ式ですね。
投稿情報: min | 2013年3 月 2日 (土曜日) 午後 08時18分
やはりランク26は同じようなもんですね。
{=SUM(N(B$3:B$13&0
B3を範囲に含めるというのがミソ・・・
投稿情報: くまぷー | 2013年3 月 2日 (土曜日) 午後 08時20分
あ、不等号以下が消えちゃった・・・
{=SUM(N(B$3:B$13&0<B4&0))}
投稿情報: くまぷー | 2013年3 月 2日 (土曜日) 午後 08時22分
ソートの83
よくそんなの出来ますね。。
投稿情報: min | 2013年3 月 2日 (土曜日) 午後 08時31分
maronさんごめんなさい。
呼び捨てにしてしまいました。
投稿情報: min | 2013年3 月 2日 (土曜日) 午後 08時40分
>B3を範囲に含めるというのがミソ
ありがとうございます
B3を0より小さくなるようにして置いたので
気が付いて戴けて嬉しいです
投稿情報: からくち | 2013年3 月 2日 (土曜日) 午後 08時50分
◆minさん、気にしないでください
◆それより、何回も解答を失敗してしまってごめんなさい
投稿情報: maron | 2013年3 月 2日 (土曜日) 午後 08時51分
>如何に作業列が必要であり、大事であるか
確かにその通りですね。
ちなみに、前にやった問題は、みなさん忘れていると思いますが。
・・・・・・・・・・・・
2010年5 月11日 (火曜日)
第59問 整序問題
【問題】
A列の数値を並び替えてC列に表示するだけです。
ただし、並び替えのルールは、先頭の数値が小さい順に並び替えます。
したがって、
111と9を比較すると111のほうが上
111と19を比較すると111のほうが上
に表示されます。
数値は、一応0から999までで重複はありとします。
作業セルなしが望ましいのですが、結構難しいような気がしますので、
作業セルを使う場合は、B列(B2:B11)を使ってください。
数式はB2及びC3の式を下にコピーしてください。解答発表までは
作業列を使う場合は、B2とC2の式のそれぞれの文字数を宣言してください。
作業列を使わない場合は、C2の式の文字数を宣言してください。
こんなのQ&Aで確立されてるのかな??
(minさん出題)
・・・・・・・・・・・・・・
でした。
前にやった問題もう一回やると違った発想が出るのではないかと時々思うことがあります。
そういった意味でも今回の問題は良い問題でした。
投稿情報: min | 2013年3 月 2日 (土曜日) 午後 09時06分
あ、ちなみにさきほど出した105はマイナスにも対応していると思います。
投稿情報: min | 2013年3 月 2日 (土曜日) 午後 09時08分
皆さんには及びませんが、
ランク
29{=SUM(--(0&B4>0&B$4:B$13),1)}
ソート
181{=INDEX(B$4:B$13,MATCH(SMALL(MMULT(--(""&B$4:B$13>=""&TRANSPOSE(B$4:B$13)),{1;1;1;1;1;1;1;1;1;1}),ROW(1:1)),MMULT(--(""&B$4:B$13>=""&TRANSPOSE(B$4:B$13)),{1;1;1;1;1;1;1;1;1;1}),0))}
もう、考えるのがめんどくさくなってしまいました
投稿情報: ni | 2013年3 月 2日 (土曜日) 午後 09時11分
みんなすげーな^^;
並べ替えは0とブランクの区別のところで、ギブアップでした。
また、完敗の巻です。
投稿情報: y sakuda | 2013年3 月 2日 (土曜日) 午後 09時22分
む印さんの・・・
>ランク
>17:=MATCH(B4,F:F,)-3
成る程・・・D列は参照禁止とされているが
F列については触れてないという事か・・・
よく問題文を見てますね~
投稿情報: くまぷー | 2013年3 月 2日 (土曜日) 午後 09時25分
誰か出題してください、、、
出題者は何処まで行っても出題者
回答者には成りきれない、、、
解く気力が全く出ない
でも、、、ストックはあるのかな、、、
投稿情報: からくち | 2013年3 月 2日 (土曜日) 午後 09時29分
>でも、、、ストックはあるのかな、、、
それが残念、ありません(^^ゞ
投稿情報: くまぷー | 2013年3 月 2日 (土曜日) 午後 10時22分
さて、、、ふふふ、、、、
投稿情報: ジョー3 | 2013年3 月 2日 (土曜日) 午後 10時52分
で、最初に気がついたんですけど、
RANK関数の範囲の引数には、演算した配列が使えないってことですね
投稿情報: ni | 2013年3 月 2日 (土曜日) 午後 11時27分
2007以上限定だった式を見直して、
小数での判定に切り替えたら色々解決し、限定も外れました、、
ソート
82:{=LEFT(REPLACE(SMALL(("."&B$4:B$13)+LEN(B$4:B$13)*1%^6,ROW(A1))&0,13,,"E+"),16)*1}
投稿情報: む印 | 2013年3 月 3日 (日曜日) 午前 06時35分
よくまあそんな式が出来るものです。
参りました。
投稿情報: min | 2013年3 月 3日 (日曜日) 午前 10時55分
>小数での判定に切り替えたら色々解決し、限定も外れました、、
わたしも、"."&B$4:B$13 の形いじったがうまくいかなかった。
投稿情報: ジョー3 | 2013年3 月 3日 (日曜日) 午後 01時42分
ランクのほう
問題を見てすぐ、、文字列の並びが、頭に浮かんだ。
で、、面白かった。
並べるほうは・・・簡単なアイデアが・・・出なかった。
>前にやった問題もう一回やると違った発想が出るのではないかと時々思うことがあります。
>そういった意味でも今回の問題は良い問題でした。
完全に脳裏から・・・・なくなってる。
投稿情報: ジョー3 | 2013年3 月 3日 (日曜日) 午後 02時55分
孫シリーズ・・・・
まごと、単語遊び・・・が、出来ました。
そのうち、送ります。
投稿情報: ジョー3 | 2013年3 月 3日 (日曜日) 午後 05時55分
>まごと、単語遊び・・・が、出来ました。
楽しみにしています
都道府県 その1、、、送り済みです
その1、、、つまりは、その2・・・
あっ、、、そうそう、ランクも本当はその1でした・・・
投稿情報: からくち | 2013年3 月 3日 (日曜日) 午後 06時56分
>そのうち、送ります。
>楽しみにしています
送りました。
>都道府県 その1
>ランクも本当はその1でした・・・
ほほーーーーー
で、
>まごと、単語遊び・・・が、出来ました。
回答例は・・・出来ないかも知れない。
けど、、、
長ければ簡単そう・・・・でも
100文字以内を、、と、、考えると・・・とけないじょーかも、、
投稿情報: ジョー3 | 2013年3 月 3日 (日曜日) 午後 07時18分
お二人から問題を頂きました。
ありがとうございます。
ジョー3さんのは出来る気がしない・・・(^^ゞ
投稿情報: くまぷー | 2013年3 月 3日 (日曜日) 午後 09時44分
ごめんなさい
これで終わりにします、、、
78:{=TEXT(SMALL(("."&B$4:B$13)+LEN(B$4:B$13)*1%^6,ROW()-3),".0000000000!E+00")*1}
投稿情報: む印 | 2013年3 月 4日 (月曜日) 午前 01時00分
>これで終わり…
これが最終形というわけではありません、、
この路線ではあと5文字は削れるかと思う次第です。。
投稿情報: む印 | 2013年3 月 4日 (月曜日) 午前 10時02分
>この路線ではあと5文字は削れるかと思う次第です。。
応援します。よ、、
私も、Small、Len,と"0."や"."を絡めてうまくいかなかった。ので、、、
TEXTかーーー、、この辺中途半端にしか研究してないので・・・ねーーー
>ジョー3さんのは出来る気がしない・・・(^^ゞ
4歳の孫が出来るのに、、ねーーーー・・・・
出来ないなら、孫の勝ちだぞ!!
あ、、、孫もたまに50回に1回ぐらい誤判定するから、、・・・・
それならきっと、、出来るぞーーー・・・・・
投稿情報: ジョー3 | 2013年3 月 4日 (月曜日) 午前 10時41分
>応援します
ありがたきお言葉…
ただ73は見た目だけなのでインチキ、、^^;
投稿情報: む印 | 2013年3 月 4日 (月曜日) 午前 11時01分
TEXT使わないとき
32が
.32.00000000000?
の形になって、、「.」が2つかーーと、、、諦めた。
TEXTって、すごいねーーーー
すぐ忘れるけど、,,,
投稿情報: ジョー3 | 2013年3 月 4日 (月曜日) 午後 12時20分
>これで終わりにします、、、
申し訳ないですが撤回します!
>TEXT使わないとき
TEXTに至る前のREPLACEにはもう一つチョッと違う82がありました
以前minさんに教えてもらったやつで
{=REPLACE(LEFT(SMALL(("."&B$4:B$13)+LEN(B$4:B$13)*1%^6,ROW()-3)&0,14),13,,"**")*1}
そのREPLACEにつながった最初の式です
100:{=PRODUCT(1*({0,"1**"}&MID(LEFT(SMALL(("."&B$4:B$13)+LEN(B$4:B$13)*1%^6,ROW()-3)&0,14),{1,13},12)))}
>ただ73は見た目だけなのでインチキ、、^^;
{=TEXT(SMALL(("."&B$4:B$13)+LEN(B$4:B$13)*1%^7,ROW()-3),1%^6&"!E+000")*1}
0があるとばれてしまいます、、、
隠れている小数が原因ですから76
{=INT(TEXT(SMALL(("."&B$4:B$13)+LEN(B$4:B$13)*1%^7,ROW()-3),1%^6&"!E+000"))}
>第59問 整序問題
すっかり忘れてました、、
今回最長10桁だったので76も可能でしたが15桁ならこの式は通用しません
やはりmaronさんや、minさんの式が一番確実ですね!!
投稿情報: む印 | 2013年3 月 4日 (月曜日) 午後 09時48分