2009年09月11日

数式で並べ替え

最近はあまりアクティブではないのですが、以前は某掲示板で、よく「数式クイズ」をやっていました。

ある課題を提示し、それを解決する数式を考えるというものでしたが……参加者の方も、次第に1つの解決方法を見つけるだけでは飽き足らなくなり、数式の文字数の短さを競うようになっていきました。

こうなるともはやクイズというよりはコンテストといった感じで、出題者(主に私ですが)の当初の想定解答よりも短くてスマートな解答も続出。(^^;)
問題の難易度も次第にレベルアップしていき、それはそれで面白かったのですが、その分、参加してもらえる人の範囲を狭めてしまったような気もしていました。

Excelの演算子や関数を組み合わせて、課題を解決する数式を考えるというのは、割といい頭の体操になるのではないかと思います。

そこで、このブログでも、いくつか問題を紹介してみることにします。
今回の問題は、レベル的にはあちらの掲示板で出題するにはちょっと……という感じで、難易度でいうと5段階の2ぐらいでしょうか。

【数式クイズ】 難易度:★★☆☆☆
A1:A5に適当な数字が入力されています。
C1:C5に、これらの数字を昇順(小さい順)に並べ替えて表示させます。

quiz01.jpg

まずC1セルに数式を入力し、これをC5セルまでコピーするのですが、このとき、C1セルにはどのような数式を入力すればよいでしょうか?


【解答例】
=SMALL(A$1:A$5,ROW())

この問題の場合は1行目から始まっているので「ROW()」でいいのですが、2行目以降から始まる場合は、「ROW()-1」や「ROW(A1)」などとして、先頭行のこの部分の戻り値が「1」になるように調整します。

あくまでも解答例ですので、これが唯一の正解というわけではなく、他にも解は考えられるかもしれません。

なお、当然ですが、この数式の場合は数値データのセルしか並べ替えることができません。
文字列セルを並べ替える数式も考えられないことはありませんが、それは少々複雑になるので、またいずれ。
posted by 土屋和人 at 08:59| Comment(0) | TrackBack(0) | Excelクイズ
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/32049315
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック