緊急事態宣言発令中による営業について詳細へ

表の中から探すエクセル関数HLOOKUP

リーグ対戦表から名前やレーンを割り当てる時に使うエクセル関数

2017年7月3日更新

ボウリング場でのリーグ戦などの成績表では、リーグ対戦表を使いますよね。実はつい最近まではリーグ対戦表を見ながら、名前やレーン番号をエクセルに打ち込んでいました。1週目のところに1はAチーム、2はBチーム、3はCチーム・・・こんな感じですかね。2週目からは、「=」(イコール)で名前が変わるようにしただけでしたね。その為に、リーグ初日に前回と同じチーム数であれば、メンバー表だけ変えれば対戦表の1週目が自動的に変わってくれてそのままセルに「=」が入っているので、楽でしたが・・・

チーム数が増えた、減ったりしたときに大慌て!対戦表をまた始めから作らなくてはいけない大仕事が待っていましたね。リストの中から探すVLOOKUPでは探す方向が違うので使えず、あきらめかけていましたが、横方向に探すことができるエクセル関数HLOOKUPにようやく出会えました。

スポンサーリンク


HLOOKUP関数

12チーム用のリーグ対戦表をエクセルに入力した画像です。ボウリング場でリーグ戦の成績表を作っている方には、おおよそこの表を見たことがあると思います。

エクセルHLOOKUP関数

対戦表のリストの中から横方向に探してくれる

縦軸に開催週(回戦数)横軸にチーム番号(①~⑩)。表の上部にチーム番号を数字にしただけの登録番号(①は1)、その下に使用するレーン番号を準備してあります。よく見るとバレちゃいますが、この12チーム版の左には10チーム版、右に14チーム・16チーム・18チームの対戦表を準備しています。これでチーム数が変動してもすぐに対応できるようになります。

次に下の画像が、チーム数・回戦数に応じてレーン番号が変わるようにHLOOKUPを使用して探し出してレコードシートへ転記するための表らしきものです。

エクセル関数HLOOKUP

エクセル関数HLOOKUP

エクセル関数HLOOKUPはこの中の9行目のLANEに使用しています。セルだと「C9~T9」ですね。例えば、セルC9には「=HLOOKUP(C8,$C$5:$T$6,2,0)」というエクセル関数を入れています。ボウリング風に書くと・・・

チーム番号1番のチームは表の中から探して、見つけたらその2行目に書いてあるレーン番号を見つけて表示して!

こんな感じです。もう少しエクセル風にすると・・・

チーム番号1番(C8)は、表の中から探す(C5:T6)、チーム番号1番(C8)の表の2行目を見つける(2)、完全一致(0)

こうすると、探したい数字がVLOOKUPと同じように探す方向が縦になっただけで使えるようになりました。使用していないチームはエラー表示になっています(13~18チーム)。そして同じようにチーム番号2~18までを同様にエクセル関数HLOOKUPを使えば全てのチームを探してくれます。セルのコピーをする時は、表のセル絶対参照$マーク忘れずにね。

元の表は?

できました!といいつつ、その表(C5:T6)は、どうなっているかの説明をしなくてはいけませんね。6行目のLANEはあらかじめ作ってあるリーグ設定シートで使用開始レーンを入力設定項目があるのでそこにレーン番号を入れると、ここのセル(C6)に反映され、そのまま(T6)まで表示されるようにしてあります。D7には(C6+1)って感じかな。

問題は5行目ですね。そもそもチーム番号1がK5に表示されているのはなぜ?ってなりますよね。実はここが一番重要なのです。ボウリング風に書くと・・・

今回の対戦回数を入力すると、チーム数に応じて対戦表を選んで入力された回戦を選ぶけど、ポジションマッチの時だけ成績順に順番に上位から表示させる

って感じですかね。エクセル関数3つの組み合わせIFとCHOOSEとDGETで完成します。長ーくなりそうなので別のページで後日説明しますね。

リーグ対戦表
準備中
スポンサーリンク