前回、1つの列のセル内を並び替えをしましたが、そのセルに合わせて他の列も並び替えをします。
マクロ系機能の無いKingsoft Spreadsheetsでも利用できる方法です。
1.データを用意する
まず並び替えするデータを用意します。
出席番号の順で並べてある、得点、名前の表を作ります。
今回はこの表を得点の低い順に並び替えます。
2.SMALLで昇順に並び替え
前回使ったSMALLでA列に入っている数値を使い、B列に入っている得点の順に並び替えます。
=SMALL(B$2:B$65536;A2)
G2にこれを入れオートフィルで必要なセルに入れます。
3.セルが何行目に表示されたか調べる
=MATCH(一致するかを調べる値;開始範囲:終了範囲;0)
一致する数値が入っている行番号を取得する関数です。
一致する値が無ければ「#N/A」と表示されます。
=MATCH(G2;B$2:B$65536;0)
これをH2に設置し、オートフィルでH列に設置します。
これでH列にB列の値が得点の少ない順に並び直されます。
4.調べた結果に合わせて他のセルも移動する
=INDIRECT(セル番号を示す文字列)
INDIRECTは文字列を参照先のセル番号として指定する関数です。
参照先のセルを変更しながら元の表示をします。
=INDIRECT("C"&(H2+1))
この例ではC列のH2に+1した数字のセルを参照します。
これをI2に設置しオートフィルで列に合わせます。
c列に入っている名前を得点の低い順にI列へ並び直されました。
OpenOffice以外のエクセル系のソフトで動かすなら
「;」を「,」に置き換える必要があります。
=MATCH(一致するかを調べる値;開始範囲:終了範囲,0)
今回扱ったMATCHはこのようになります。
A列の「目的の文字」が何行目かを調べるには
=MATCH("目的の文字";A$1:A$65536,0)
のようにします。