OpenOffice Calcの関数のみでセルを並び替える方法2

前回、1つの列のセル内を並び替えをしましたが、そのセルに合わせて他の列も並び替えをします。
マクロ系機能の無いKingsoft Spreadsheetsでも利用できる方法です。



1.データを用意する

まず並び替えするデータを用意します。
office2_01
出席番号の順で並べてある、得点、名前の表を作ります。
今回はこの表を得点の低い順に並び替えます。

2.SMALLで昇順に並び替え

前回使ったSMALLでA列に入っている数値を使い、B列に入っている得点の順に並び替えます。

=SMALL(B$2:B$65536;A2)

office2_02
G2にこれを入れオートフィルで必要なセルに入れます。

3.セルが何行目に表示されたか調べる

=MATCH(一致するかを調べる値;開始範囲:終了範囲;0)

一致する数値が入っている行番号を取得する関数です。
一致する値が無ければ「#N/A」と表示されます。

=MATCH(G2;B$2:B$65536;0)

これをH2に設置し、オートフィルでH列に設置します。
office2_03
これでH列にB列の値が得点の少ない順に並び直されます。

4.調べた結果に合わせて他のセルも移動する

=INDIRECT(セル番号を示す文字列)

INDIRECTは文字列を参照先のセル番号として指定する関数です。

参照先のセルを変更しながら元の表示をします。

=INDIRECT("C"&(H2+1))

この例ではC列のH2に+1した数字のセルを参照します。
これをI2に設置しオートフィルで列に合わせます。
office2_04
c列に入っている名前を得点の低い順にI列へ並び直されました。

OpenOffice以外のエクセル系のソフトで動かすなら

「;」を「,」に置き換える必要があります。

=MATCH(一致するかを調べる値;開始範囲:終了範囲,0)

今回扱ったMATCHはこのようになります。

A列の「目的の文字」が何行目かを調べるには

=MATCH("目的の文字";A$1:A$65536,0)

のようにします。

スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする

関連記事



スポンサーリンク