2014年10月23日木曜日

よさこい観覧チーム一覧作成 使用関数

今回は前回の続きで使用している関数の説明です。
色々説明する前に参加チーム一覧と演舞会場毎のスケジュールを表示し大まかな作成概念の説明をしましょう。




参加チーム一覧の①チーム名からスケジュールの会場毎に②観覧するチームを探して右側セルのマーク(MK)を参加チーム一覧の会場毎の③マークに転記する。
これによりどのチームを観覧するかどうかの一覧表が作成され観覧回数の集計ができる。

まずは参加チーム一覧のシートのチーム名とスケジュール表のチーム名関係を示し、その手順を理解する。
シート構成は、シートTeam:チーム一覧 シートSchedule:スケジュールとなっている

① シートTeam:チーム一覧のセルB4($B4):濱ばとんのチームが

②シートSchedule:スケジュールの C5:D29($C$5:$D$29)範囲に濱ばとんがあるか調べ

濱ばとんがあったらその行のD列(MK)の値を、シートTeam:チーム一覧のセルF4セットする。
  この場合 1と ブランク(実際は数値定義しておけばゼロとみなされる)
  これをシートTeam:チーム一覧のセルB列(B4、B5、B6,・・・B28まで全チームに対して行う。
  さらに同じ方法で、残る会場も行う。

突然ですが、シートTeam:参加チーム一覧 F4にセットされている式です。

=if(iserror(vlookup($B4,Schedule!$C$5:$D$29,2,false)),"0",vlookup($B4,Schedule!$C$5:$D$29,2,false))

あっちゃぁ~~~~わかんねぇ~~~~ の悲鳴が聞こえそうです。(爆)
でも $B4$C$5:$D$29、Schedule はシート名
他には、 if    iserror   vlookup の三個と falseだけです。
p
ちなみにシートTeam:チーム一覧 F5にセットされている式は、
=if(iserror(vlookup($B5,Schedule!$C$5:$D$29,2,false)),"0",vlookup($B5,Schedule!$C$5:$D$29,2,false))
$B4$B5に変わっただけで、最終行F28迄 順番に$B4から$B28迄置き換わるだけです。
操作はF4セルを F5からF28迄ドラッグ(コピー)するだけで一つの演舞会場分は完成です。会場毎の先頭セルの式をセットするだけであとはそのセルから下にズリズリとドラッグしてコピーすれば完了。  楽チンでしょ(●^o^●)

$の意味
'=if(iserror(vlookup($B4,Schedule!$F$3:$G$27,2,false)),"0",vlookup($B4,Schedule!$F$3:$G$27,2,false))  

セルの位置は B4 セルに設定した式をコピーし張り付けると張り付けた位置のセル位置が相対的にセットされる。 このような表の場合左上先頭セルに式をセットし同じ列および右側の列に複写して作成する場合が多い。
$B4: Bは変化しないが 4は複写先に応じて変化する。
$C$5:$D$29  どこに複写しても変化しない(固定)
$は$をつける列と行を指定し付けられた列と行別々に変化指定ができるということで、つければ変化しない絶対参照、つければ変化する相対参照ということになる。

1) vlookup
  シートTeam:チーム一覧 F4に
  =vlookup($B4,Schedule!$C$5:$D$29,2,false) をセットしても 今回の例では1が入る。しかしもし該当するチームがスケジュール表にないときは #N/A が表示され 合計計算も #N/A となる。

  それを回避するために if    iserror   を使用する。

2)iserror(vlookup($B28,Schedule!$C$5:$D$29,2,false) 
  vlookup($B28,Schedule!$C$5:$D$29,2,false)の結果チーム名がスケジュール表に
   ないとき #N/A(エラー)なら:真  となり
   あるとき 偽 となる  ということを調べる関数

3)=if(   条件  ),真の時の値,偽の時の値)
 F4の式は 
    =if(iserror(vlookup($B4,Schedule!$C$5:$D$29,2,false)),"0",vlookup($B4,Schedule!$C$5:$D$29,2,false))

   条件:  iserror(vlookup($B4,Schedule!$F$4:$G$27,2,false)) 
   真(#N/A )の時の値: ”0” セット:(””)なにもセットしないでも可
   偽の時の値:vlookup($B4,Schedule!$C$5:$D$29,2,false):ここでは 1

4)false:検索値と完全一致するデータを取得し一致するものがなければエラー値#N/Aをセット。

こんな感じでした。
一つのお祭りのこの表が出来上がれば、後はそれなりにそれぞれの表に値だけ貼り付けてやれば式は消えないのでこれまた楽チン。
但しチーム数や演舞会場が多いときには追加する必要があるけど。

では皆さんのご健闘を祈る(*^^*)

これで仕組みはできたのですがいくつか留意事項があります。
大袈裟に言えば完全無欠ではないのです。

その1:
VLOOKUPの限界というよりはこの参照の仕方にあります。同じ会場で同じチームが?二回以上の演舞があり2回とも観覧する場合最初の演舞しかカウントできません。

その2:
参照がうまく行かない。観覧マーク1を入力したのにです。
こんなに場合にはチーム名をじっと見て比較してみてください。チーム名が同じように見えても、参加チーム一覧とスケジュール表とでは若干異なる場合が有るのです。要するに入力時の違いです。

これはコンピュータの世界の文字種(半角 全角)等に依るもので一見同じように見えても違う場合。
そんな時はスケジュールの方のチーム名を参加チーム一覧にコピペしましょう。
その逆でも良いのですが経験上その方が他の会場のスケジュール表も同じ場合が多いので、チーム名が違う事への対応が楽なのです。

その3
集計表の機能別確認
コンピュータ便利で簡単集計等ができてしまいますが作って直ぐ使い結果を信用するなどと言うことをしてはいけません
必ず確認しましょう。

確認方法は至ってズボラ スケジュールのすべてを見るとする1をいれるのです。(※1)スケジュールの会場別の合計をチェック。参加チーム一覧の会場別合計も合っているか確認。
縦横の合計が全て遇っていればオッケーです。
※1:スケジュール表 会場別の先頭に1を入力したら、そのセルをクリックして,下にコピー
もっと慣れてる方は、そのセルをダブルクリックで最終行まで入れられるんです。

以上留意点でした。









0 件のコメント:

コメントを投稿