医局日記

【Excel講座(簡略)】その4 ~関数の組み合わせ技~

不評コーナーなのでさっさと進めて完結させよう。

今回は関数の組み合わせ技を紹介。

…と、その前に本講座の最終イメージを先に見せておきます。


excel_04_01

こんな感じに、入院した順に入力した患者さんデータを

excel_04_02

病棟の順に並べ替えて、表示したい。
リエゾン医ってのは各病棟を回診するので、並べ替えた名簿が必要なのです。

そのためには高度な関数の組み合わせ技が必要
…でもない。実はたった3つの関数しか使ってない。
解説しよう。



index関数、match関数、の組み合わせ

この組み合わせはexcel解説サイトで頻出。実際、この2つはセットで使われることで真価を発揮する。



match関数 ~知りたい値、文字のセル番号を探し当てる~

【 =match(探したい文字または数値 , 検索範囲 , 0)】

探したい文字、または値を入力することで、一致するセルの行番号が表示されます。


index関数 ~特定の位置のセルを表示する~

【 =index( 検索範囲 , 表示させたいセルの行番号)】

これ単体だと殆ど役に立たない。セルの位置が分かってるんなら、画面見ながら自力で探せば良いんだから。
しかし先述のmatch関数と組み合わせることで超絶使えるヤツに。例えば

=index(患者さんの名前の列 , match( 探したい身体疾患名 , 身体疾患の列 , 0))

という感じ。疾患名を入力すると、その疾患の患者さんの名前が表示されるようになります。


探したいセルの場所を特定→その場所を基準に、目当てのセルを表示
これを重ねていくことでセルの並び替え表示は自由自在になるのだ。


excel_04_03

並べ替えのカラクリとしては上記、中間処理層を作ることで実現しています。

まずindex関数で、症例の番号(患者一覧の上から順)から、それに対応する病棟名を表示させる。
次にmacth関数を使う。”ナンバリング”という列を新たに用意し、検索範囲に指定。
1階病棟なら数字の”1”、2階病棟なら”2”という具合いに数字データに置き換える。
そのままだと同じ病棟の患者の見分けがつかなくなるので、わざと+0.001と数値を足すことで無理やり差別化処理する。
それをsmall関数(前回紹介したやつです)で、小さい順に並び替えて処理する。
上から順に”一番小さい値”、”二番目に小さい値”…という具合いに。

最終処理として、match&index関数の合わせ技を用いて、並び替えた番号に相当する症例の番号を表示。
これで並び替え自体は完了。後はindex関数を用いて、並び変わった順に患者の病棟、名前、疾患、などの順に行単位で出力。


ね、簡単でしょう?

…と言えたらよかったのだが、やっぱり駆け足説明だと分かりにくいかなコレ(´・ω・)



次回で最終回にしよう。
…もう需要ないと思いますが、「軽量化」「メンテナンス」について解説して〆ます。