OpenOfficeで膨大なリストのなかから、ほしい項目を効率的に見つけ出すには
たくさんのアルバムリストや、営業所、部署ごとの社員名などを管理するのは結構大変ですよね。
下の形式でリスト管理すると案外楽にできるかもしれないです。
このリストでは、E2セルでアーチスト名をリスト選択すると
送信者 OpenOffice |
選択したアーチストの登録アルバムのタイトルがF列で選択できるようになり
送信者 OpenOffice |
さらに選択したアルバムの中の曲名がG列で選択できるようになります。
送信者 OpenOffice |
入力規則は、関数を含めた数式を使って設定することができるので、上のようなことが可能になります。
このファイルは、SKYDRIVEからcalc161.odsをダウンロードしてください。
E2セルの入力規則に設定する数式を作成
A2:A300これは数式というようなものではなく、ただのセルの範囲です。
ただし、そのままではおなじアーチスト名が何度もリストの中に登場することになるので、下の2点の設定を行ないます。
- ツールバーのデータ>入力規則で、入力値の種類をセルの範囲に設定する
- 空白セルの許可のチェックを外す
- エントリを昇順に並べるにチェックを入れる
- ソースの欄に上記のプロセスで作成した数式を入力する
送信者 OpenOffice |
送信者 OpenOffice |
このことは、以下F2セルの設定、G2セルの設定でも同じです。
F2セルの入力規則に設定する数式を作成
INDIRECT(ADDRESS(MATCH(E2;A1:A300;0);2)):INDIRECT(ADDRESS(COUNTIF(A2:A300;E2)+MATCH(E2;A1:A300;0)-1;2))リストの起点の設定
MATCH関数を使ってE2セルに入力されているアーチストのセルが何行目から始まっているかを探す。MATCH関数で返された値を行番号とするMATCH(E2;A1:A300;0)
アドレスを生成
ADDRESS(MATCH(E2;A1:A300;0);2)
INDIRECT関数をかぶせて数式の中で利用できるようにする
INDIRECT(ADDRESS(MATCH(E2;A1:A300;0);2))
リストの終点の設定
A2:A300の間に、E2の値が何個入力されているかを数えるCOUNTIF(A2:A300;E2)
入力されている個数に、MATCH関数を使って求めた行番号を加えて1を引く。 この値を行番号にする。
COUNTIF(A2:A300;E2)+MATCH(E2;A1:A300;0)-1
曲名はB列に入っているので列番号を2に設定してアドレスを生成
ADDRESS(COUNTIF(A2:A300;E2)+MATCH(E2;A1:A300;0)-1;2)
INDIRECT関数をかぶせて数式の中で利用できるようにする
INDIRECT(ADDRESS(COUNTIF(A2:A300;E2)+MATCH(E2;A1:A300;0)-1;2))
完成したら始点と終点の設定を、始点:終点の形にして、入力規則にする。
G2セルの入力規則に設定する数式を作成
INDIRECT(ADDRESS(MATCH(F2;B1:B300;0);3)):INDIRECT(ADDRESS(COUNTIF(B2:B300;F2)+MATCH(F2;B1:B300;0)-1;3))F2セルの設定と同じ構造です。
ただし今度は、検索する対象をF2にする。
曲名が入っているC列を対象にするので、ADDRESS関数で列番号を3にする。
完成したら始点と終点の設定を、始点:終点の形にして、入力規則にする。
注意すること
元のリストを下の手順で並べ替えておく必要があります。送信者 OpenOffice |
送信者 OpenOffice |