この記事のこの場所に「この記事には広告が含まれます」という一文が目立つように書いてあります(自画自賛?)
《以上広告アナウンスでした。以下自動広告が挟み込まれる本文》
前回連載「初心者による優勝マジック計算excel自動化への道1」からの続き。
前回連載記事では、プロ野球ペナントレースでの優勝予測(マジック計算)をする上で、引分試合の重要性について指摘し、さらに、マジック計算をするための(最低限)必要な数字や情報を取り上げて説明した。
今回記事では、これらの必要な情報をいかにExcelに入力して、その入力された情報をどのように計算して必要な情報を導き出すか、入力欄と出力欄の配置等を考えながら、Excelでの優勝マジック計算(のできるだけの自動化)をするためのレイアウトを作成する。
目次(予定)
初心者による優勝マジック計算excel自動化への道
はじめに[初回記事]
- プロ野球での勝率計算 - 順位決めに必要なものと引分試合の重要性[前回記事]
- マジック計算の設計図 - Excelに入力する欄と出力する欄を配置する[今回記事]
- 優勝マジック数と自力優勝 - 優勝マジックを「自力」で理解するために[予定]
- マジック点灯と消灯の判定方法 - 自力優勝ルートと他力優勝ルートの境界線[予定]
- 優勝の可能性消滅と優勝決定 - マジックナンバーの計算自動化へ[予定]
都合により、タイトル変更や、章の追加または削除する可能性があります。
優勝マジック計算に必要な数字と情報
前回記事の復習。
順位決めるには、まず「勝率計算」をすることになっており、その「勝率計算」では
「勝ち試合数」と「負け試合数」
が必要となる。そこからさらに優勝予測(マジック計算)をするには、(勝ち試合数と負け試合数だけでなく)
「引分試合数」
が(日本のプロ野球ペナントレースでは)重要な役割を果たす。
そして(個人で)優勝予測(マジック計算)をしていく上で、(最低限)必要となる数字や情報が、
「日付」
「チーム名」
「チームごとの勝敗引の結果(とシーズン総試合数)」
「各チームごとの対戦結果(と各チームごとのシーズン対戦総試合数)」
「(同シーズン中の)セパ交流戦成績」
「前年度の順位」
である。(前回記事からの個人的なまとめ。)
最終的には、これらの必要な情報を入力すれば、求める結果が(できるだけ)自動的に出てくるようにすることを、目標とする。
入力欄の配置
表計算ソフトのExcelファイルを新規に開く。
私の使っているExcelには、「優勝マジック計算」のようなテンプレート(ひな型)は存在しないので(個人の確認です)、何も指定しないまま、新規ファイルを開く。
見やすさや入力のしやすさを考えて、いろいろと、レイアウトを変えたり文字の大きさを変えるようにしたいところだが、とりあえずは、そのままの状態で、必要な入力欄を作成していく。
上記(と前回記事)で示した、優勝マジック計算に必要な数字と情報を、どこに入力するかが分かるように項目を書いていく。

この画像で示したひな型は、スペースの関係で一部文字が枠からはみ出していたり隠れたり、右側に続く部分を省略していたり、また、後から項目を追加する想定をして詰めずに空白にしている箇所がある。あくまで、個人的な一例ではあるが、この枠組みを元にして、優勝マジック計算に必要となる、基礎的な数字と情報を入力する作業の流れを説明していく。
今回は、例として、2026年セリーグペナントレースを取り上げ、現時点での情報(当ブログ記事執筆時の2026年セリーグシーズン中の情報)を元に、分かっている数字や情報を入力する。
日付については、セル「B1」に入力する予定(「日付」と文字入力したセル「A1」の右隣に)だが、現時点では、いつの時点の情報を入力するのかまだ決まっていないので、空白にしておく。
補足:表計算ソフトには、自動的に(パソコン内部の時間を元に)今日の日付を表示してくれるtoday関数のような便利な仕組みも存在するが、マジック計算で求められているのはシーズン中の過程での特定の日付(の試合終了時点)の結果であるので、ファイルを開いた日付が変わるたびにその日付に自動的に変わってしまう関数で表示させるよりは、特定の時点での日付を固定させるために直接入力する(方が好ましい。もちろん、その日の内に入力して、today関数で当日の日付を出した後でその「値をコピー」して固定した値を貼り付けるなどの工夫ができるのであれば、大いにやった方がいい)。なお、年まで表記するか、書式設定をどうするか、などは後のレイアウト等を考慮しながら決めることにする。
「チームのシーズン総試合数」と、「リーグ内の各対戦相手とのシーズン直接対戦数」については(当ブログ記事公開時点で)、
「チームのシーズン総試合数」 は 143試合
「リーグ内の各対戦相手とのシーズン直接対戦数」 は 25試合
で固定された数字である[当記事公開時2026年シーズンの個人的確認]ので、それぞれ、
セル「B2」に、「143」、
セル「B3」に、「25」、
の数字を入力する。
補足1:これらの数字が必要な理由は、
・「チームのシーズン総試合数」は、残り試合数を算出するため、
・「リーグ内の各対戦相手とのシーズン直接対戦数」は、直接対戦成績で勝ち越しが決まっているかどうかを判定しなければならないケースがあるため、
である。
補足2:「シーズン総試合数」や「シーズン直接対戦数」については、ここ数年(2021年以降から現時点までの個人的な確認)は毎年一致しており、(変動の無い)いわば固定された数字として計算式に組み込んでおくこともできるので、わざわざ枠を設けて冒頭に入力しなくてもいいと思うかもしれない。計算式に組み込んでおけば、(その組み込んだ数字が変わらなければ)毎年、関数を変えることなく継続して使うことができるからだ。ただし、試合数の変動がこのままずっとないとは限らず(たとえば間近ではコロナ禍の2020年で総試合数の変更があったケースが実際にあり、また将来的に総試合数や交流戦試合数が増減する可能性は常にある)、変動があった場合、(それを組み込んだ計算式の中の)該当する数字をすべて修正しなければならなくなることを考えれば、あらかじめ入力する欄を設けて、(計算式はその欄の数字を参照するようにして)有り得るかもしれない将来の変動に対応できるようにしておくことが望ましいだろう。
「チーム名」については、「前年度順位」の順に、入力しておく。今回の例として取り上げる、セリーグ前年度(2025年)順位は、
- 阪神
- 横浜
- 巨人
- 中日
- 広島
- ヤクルト
[2025年セリーグペナントレース最終順位、個人の確認です]
だったので、その順番に、セル「B6」~「B11」まで入力していく。
補足:「チーム名」にどんな名称を入れていくか、また、前年度順位でなぜ入力するか、について詳しくは前回記事参照。
「チーム名」の名称をどうするか(「正式名称」、「愛称」、「地名」など)については、特に決まっておらず、基本的には一般のニュースサイト等での表記を参考にしつつ、区別がついて一貫さえしていれば、個人で楽しむ分においては、アレンジしてもかまわない、というのが個人的立場だ(個人の判断であり、上記の個人的な表記例を推奨するものではありません)。また、「前年度順位」については、(今年度の)最終的な順位決め規則の「最後の砦」でもある(前回記事参照)ことから、(固定した)入力欄の順番として採用している。

続いて、各「チーム名」の横に、勝敗成績(引分を含む)を入力する欄を設けていく。
順位決めでまず第一に必要となる「勝率」を計算するために、そこで記した「チーム名」の横に、「勝ち試合数」(上記セル「C5」)、「負け試合数」(同セル「D5」)、「引分試合数」(同セル「E5」)の項目を作成し、それぞれのチームのこれまでの勝敗成績を数字で入力できるようにする。(ただし、この数字は、後で述べる、「セパ交流戦成績」と「リーグ内の直接対戦成績」の合計であり、それらの数字を入力すれば自動的に計算できるので、それらに入力した数字を用いた計算式を使った場合は、ここは、入力欄ではなく、出力欄になる。出力欄として用いる計算式については後述する)。
補足:初心者であれば、とりあえずはここまでの入力で終わらせて、暫定的な順位として、勝率のみで順位を簡易的に決めるようにしてもいいかもしれない。勝率結果だけでも、ある程度の順位決めや優勝予測(優勝マジック計算)は可能だからだ。(ただし「同率のケースは除く」との留保付きで)。
正確な順位を求めるのであれば、同率のケースも考慮に入れなければならないが、そうなると、さらに細かい条件を考慮し、それに対応して計算式も複雑で長くなっていくことになる。ただ、実際には(引き分け数の差などもあって)同率にならずに決着がつくことも少なからずあり、同率ケースを考慮した複雑な条件式は出番が少なくて、労力の割に合わないと思うことも、正直、ある(個人の感想です)。よって、初心者であれば、とりあえずは勝率で順位決めし、同率の場合は別途個別に検証するようにした方が合理的かもしれない。(あるいは、同率の場合は仮で同順位にしたり、優勝マジック数の算出では同率のケースは全て+1にして仮にするなど、の保留付きの対処法も考えられる)。
ただし、当記事はあくまで「マジック計算の(できるだけの)自動化」を目指しているため、ここで終わらせず、さらに続ける。
「勝ち試合数」と「負け試合数」が分かれば「勝率」は計算できるので、その隣(「勝ち試合数」、「負け試合数」、「引分試合数」の次のセル)に、「勝率」欄(上記セル「F5」)を作っておく。
補足:「勝率」については、(入力するのではなく入力された数字から計算される)出力結果であるので、(この後も続く入力欄を優先して)「勝率」欄は後回しにしてかまわない。ただし、「勝率」は、順位決めに(まず第一に)必要になる指標であるので、この位置に欄を確保した。また、(先に述べたように)初心者が、とりあえずはここまでの数字(チームの総合勝敗成績まで)で仮の順位決めをするのであれば、この位置で区切りをつけるのもいいだろう。
この「勝率」欄に入れる(出力するための)計算式については、前回記事でも簡単に説明済みだが、改めて後述する。
「セパ交流戦成績」、「リーグ内の直接対戦成績」については、順位決め規則で、勝率が同率(セリーグの場合は、かつ勝利数が同数)だった場合に、必要になる数字なので、入力する欄を設ける。
「セパ交流戦成績」は、順位決め規則において直接関係のある数字ではない(他の数字からでも算出できる)が、(この後で述べる)「リーグ内の直接対戦成績」と合計すると「シーズン総合成績」になるので、作業上、入力の手間を最小限にするために、採用している(その仕組みについては後述)。特に、(個人的に優勝マジック計算をし始める)シーズン最終盤においては、交流戦は(ほとんどの場合)既に終了していて決定された数字になっている(ことがほとんどである)ので、分かっているのなら先に入力しておきたい。
上記画像では、「交流戦成績」の欄として、「勝」(上記セル「G5」)、「負」(同セル「H5」)、「分」(同セル「I5」)の項目を作成している。
補足:「セパ交流戦成績」とは、「リーグ外の対戦成績」とも言えるので、「リーグ内の対戦成績」との合計が、「シーズン総合成績」になる。式で表せば、
「シーズン総合成績」 = 「リーグ外の対戦成績」 + 「リーグ内の対戦成績」
となる(それぞれの項目に、「勝」、「負」、「引分」がそれぞれ含まれている)ので、この計算式に従って、「リーグ外との対戦成績」がすでに終わって先に入力されていれば、「リーグ内の対戦成績」を入力するだけで、自動的に「シーズン総合成績」が算出される。
また、「交流戦」での(リーグ外チームとの)個別の直接対戦成績は(同一リーグ内での順位決めに)関係しないことから、(この後に述べる「リーグ内の直接対戦成績」では各対戦チーム相手ごとの勝敗分けにしているのとは違って)交流戦成績は(各対戦相手ごとに分けずに)合計にしている。
「セパ交流戦成績」を入力する理由については、他にも前回記事参照。
「リーグ内の直接対戦成績」には、各チームごとにそれぞれの対戦相手との直接対戦成績(勝数、負数、引き分け数)を入力していくため、(同じリーグ内で対戦する球団の)5チーム分の枠が必要となる。
ここでの入力欄は、チーム総当たり戦でよく用いられる表の型を採用する。
行と列の項目が同じ並び順で、自分自身相手には戦わないので表の左上から右下に斜め棒(この部分には入力しない目印)が入る、リーグ戦でおなじみの表だ。今回は、6チームの総当たり戦であることから、6行×6列として、列(縦)の項目(先に入力した前年度順位の並びの球団名)と同じ順で行(横)の項目(対戦相手の球団名)を並べる。ただし、今回は、一般的なリーグ総当たり表で勝ち・負け・引き分けのどれかを入力するだけのパターンと違って、行の項目には直接対戦相手ごとに「勝数」、「負数」、「引き分け数」のそれぞれの枠を確保する。
補足1:上記の画像でいえば、列(縦)の球団名は、先にセル「B6」~「B11」に入力しているのでそれを流用して新たに列を追加せず、(交流戦成績の右横に)行(横)の枠を追加していく。行(横)の球団名は(先に入力していた項目を飛ばして交流戦成績の後に)1球団に対して勝ち・負け・引き分けの3項目を入力する欄が必要になるので、それに対応して、セル「J4~L4」~セル「Y4~AA4」に(3項目ずつ)球団名を入力する。(初めの上記画像レイアウトで、「リーグ内の直接対戦成績」の説明項目をセル「J3」に置き、J4以降の行4を空白にしていたのは、これを入力するため。)
補足2:表の行(横)に表示される球団名(セル「J4~L4」~セル「Y4~AA4」)は、直接入力するのではなく、先に列(縦)に入力した球団名を反映させ、出力欄扱いにしたい。そうすれば順位が変わった来年度も、列(縦)の球団名はセル「B6」~「B11」に入力するだけで、行側(セル「J4~L4」~セル「Y4~AA4」)も反映できるからだ。それを表す関数については後述する。
入力欄のレイアウト整理
上記画像例では、「セパ交流戦成績」と「リーグ内の直接対戦成績」の欄が右側に続いていくのだが、項目が多すぎて(交流戦成績の勝ち負け引き分けの3ブロックと、リーグ戦表の6チーム×勝ち負け引き分け3=18、の計21ブロック)引用した画像上では入りきらずに省略している。
ここでいったん、上記画像のExcelファイルのひな形のレイアウトを、入力しやすいように整理していく。また、入力内容が重複せずに最小限で済むように、出力欄を工夫していく。
「セパ交流戦成績」と「リーグ内の直接対戦成績」に入力するのは、(勝ち数・負け数・引き分け数の)数字で、実質的入る数字は「0から25までの整数」(交流戦全18試合、直接対戦各25試合、現時点での確認です)であり、2桁の数字が入力できるスペースがあれば充分だろう。よって、そのセルの幅を、今表示されているものから半分程度に小さくする。
上記画像の例では、列G~列AAが該当するので、その列をまとめて選択し、メニュー表示から「列の幅」を選び、(自動調整(AutoFit)ではなく)現在の列の幅の値を数値表示させる。作業環境にもよるが、これまで列の幅を変更させていなければ(初期状態のままであれば)、数字が表示されるので、だいたいその半分程度の数字を入力し直せば、だいたい半分程度の幅になる。
個人的な環境では、「8.38」と表示されていたので、キリのいいところで「4.00」と入力し直してOKボタンをクリックしたら、画面上で見切れていた右側部分も入って見やすいレイアウトになった。(これはあくまで、個人のPC環境による一例です。実際の作業では、この数字にこだわることなく、個々人のあった環境にすることを推奨します。)

続いて、リーグ内の対戦成績表を完成させるため、行(横)の項目に対戦相手の球団名を並べていく。
先に述べたように、リーグ戦の総当たり表では、列と行の項目の並び順を一致させるので、既に入力している列の内容を反映させれば、行の項目も表示できる。
補足:Excelの「コピー」「貼り付け」作業では、列を「コピー」して行の方向にその順番で「張り付け」ることができる便利な仕組みがあり、一般的な総当たり表であればこれを用いればいいのだが、今回は、行(横)の項目が各チームごとに勝ち負け引き分けの3つずつ枠が存在してズレてしまうことと、できるだけの自動化を目指している以上、(コピーして貼り付ける作業よりも)列に入力した時点で行に反映させる方法を優先する。
例えば、上記画像では、総当たり表での列の一つ目(セル「B6」)にチーム名「阪神」が入力されているが、それを行の一つ目のチーム名の枠(セル「J4」)に反映させるには、そのセル「J4」に、数式
=B6
と入力しておけば、セル「J4」にはセル「B6」の内容(「阪神」)が表示される。
補足:あるいは、「コピー」して「リンク貼り付け」を行う。上記の例では、セル「B6」を選択して「コピー」した後、セル「J4」を選択して「リンク貼り付け」を行う。この作業でも、セル「J4」に、上記と同じ数式「=B6」が貼り付けられる。
そのセル「J4」の右に続くセルにも、同様の数式を設定しておけば、列(縦)の球団名はセル「B6」~「B11」に入力するだけで、行側(セル「J4~L4」~セル「Y4~AA4」)も反映できるようになる。
ただし、ここからは(個人的なレベルでの)注意点になるが、
総当たり表で、「球団名」だけを列にも行にも反映させた場合、どちらが主なのか分かりにくい(対戦成績表で○勝となっているときに、勝っているのは行の球団なのか列の球団なのか混同しやすい)
などの懸念があるので、対策として、
総当たり表では左列の「球団名」が主で、上行の「球団名」が従である(対戦相手名である)ことを分かりやすくするため、上行の「球団名」は、「対《球団名》戦」と表示させる
こととしたい。
具体的には、上記でセル「J4」に、数式「=B6」と入力して「阪神」と表示させたが、これを「対阪神戦」と表示させることとしたい。それには、セル「J4」に数式
=”対”&B6&”戦”
と入力する。こうすることにより、行の項目には「対○○戦」《○○はセル「B6」の表示内容》と表示されて、行と列がクロスした場所で、どのチームにとってのどの対戦相手との成績であるかが分かりやすくなる。
補足:Excelの式には、このように、数字の計算だけでなく、文字列を表示させる機能もある。上記のように「”」と「”」の間に文字列を入力し、「&」で「(参照先の)セル番号」をつなげば、一続きの文字列として表示することができる。

残りの対戦相手の、(前年度)2位以下チームも同様に表示させるため、
「セルM4」 =”対”&B7&”戦”
「セルP4」 =”対”&B8&”戦”
「セルS4」 =”対”&B9&”戦”
「セルv4」 =”対”&B10&”戦”
「セルY4」 =”対”&B11&”戦”
と、それぞれのセルにそれぞれの式を作成する。
これで、勝敗成績と勝率を出すための、(最低限)必要な入力枠(と項目表示)を設定できた。
出力欄の計算式作成
ペナントレースでの成績は、「交流戦成績」と「リーグ内の直接対戦成績」の合計であるので、まず、「勝ち試合数」については、
「勝ち試合数」=「交流戦成績の勝ち試合数」+「リーグ内の各球団相手の直接対戦成績の勝ち試合数の合計」
であり、上記の画像での、阪神の例で言えば、
「阪神の勝ち試合数(セルC6)」は、
交流戦成績の勝ち数(セルG6)と、各球団相手の直接対戦での勝ち数、つまり、対横浜戦の勝ち数(セルM6)、対巨人戦の勝ち数(セルP6)、対中日の勝ち数(セルS6)、対広島戦の勝ち数(セルV6)、対ヤクルト戦の勝ち数(セルY6)の合計となり、式で表すと、
=G6+J6+M6+P6+S6+V6+Y6
となる。
注:
前もってのお断りの説明をしておくが、ここでのセル「J6」については(阪神にとっては)自チームである「対阪神戦」の成績を意味し、実際には対戦自体が存在しないので入力されることもなく(一般には総当たり表で斜め線が引かれて入力されない箇所)、(数字が入力されない限り)この式での計算結果には影響はなく、不要な項目だ。ただし、後に、この式を利用して、他球団の成績結果へコピーする際、(存在しない)自チームとの対戦結果の項目があった方が、作業の省略につながるので、そのまま残している。(この後、説明する「負け試合数」と「引分試合数」についても同様。具体的なコピー作業については後述)。
続いて、阪神の「負け試合数」と「引分試合数」の成績も同様に式で表すと、
「阪神の負け試合数(セルD6)」は、
=H6+K6+N6+Q6+T6+W6+Z6
「阪神の引分試合数(セルE6)」
=I6+L6+O6+R6+U6+X6+AA6
となる。
補足:
上記の式を個別に入力すれば問題はない。ただ、「勝ち数」の各項目と、「敗け数」・「引分数」の各項目が同じセルの数だけ右方向にズレていることに気付けば(計算結果のセルの位置と、計算式の各セルの位置、のズレ)、「阪神の勝ち試合数(セルC6)」を、「阪神の負け試合数(セルD6)」、「阪神の引分試合数(セルE6)」にコピー(フィル)することで、同じ結果が得られる。

2位以下も同様の式を作成していくが、1位阪神で作成した式を流用できるので、「阪神の勝ち試合数(セルC6)」、「阪神の負け試合数(セルD6)」、「阪神の引分試合数(セルE6)」の3つを選択した上で、下方向に6位ヤクルトの「セルE11」までフィル(コピー)すれば、6球団すべてのシーズン勝敗結果が(交流戦成績とリーグ内の直接対戦成績を入力すれば)出力できる式が出来上がる。

続いて、勝率欄に式を作成する。前回引用したように、勝率は、
勝率 = 勝試合数÷(勝試合数+敗試合数)
であるので、上記画像の1位阪神の勝率(セル「F6」)は
=C6/(C6+D6)
の式で計算され、2位以下もその式をフィル(コピー)して、同様の式を作成する。(ただし、現時点では数値の入力前で、勝率計算の分母が0で、0での割り算になるためエラー表示になる。)

補足:「勝率」の表示設定については、現時点はエラー表示されているが、実際に数値を入力して表示されたときは、状況に応じて設定を変更する予定(小数点表示や四捨五入の設定を変える)。
以上で、各チームの「交流戦成績」と「(リーグ内の)各チームとの直接対戦成績」を入力することで、ペナントレースでの勝率が、算出されるようになった。
総当たり戦表での更なる工夫
こうして、各チームの「交流戦での試合成績」と「(リーグ内の)直接対戦成績」を、それぞれ入力すれば、順位予測(優勝マジック計算)をするための(最低限)必要な情報はそろったことになる。
ただ、ここではさらに、「(リーグ内の)直接対戦成績」を「総当たり戦表」とみなすことで、「総当たり戦表」ならではの、工夫をしておきたい。
総当たり戦表では、縦(列)と横(行)の項目名の並びが一致していて、自分自身相手には戦わないため、その枠には入力しない。(一般的な総当たり戦表では、左上から右下方向へ斜め線が引かれて、ここには入力しない場所であると表示されていることが多い)。
上記のExcelの表では、1位の成績合計を2位以下の球団にもコピー(フィル)できるように、入力しない欄も計算項目に含めてしまっている。コピー後に必要なくなった項目を一つ一つ削除して行けば正確な計算式になるのだが、6球団の勝ち負け引き分けの3項目すべての式(計18)から該当する項目だけを「手作業」で削除していくのは、むしろ、作業ミスが起こりやすい。一方で、その枠に間違って入力してしまったときは、計算結果に影響が出るというデメリットがある。そこで、その枠が「入力しない欄」であることが分かるように、目印をつけておきたい。個人的には、入力しない欄には、「セルに着色」で「グレー」を選択している。
補足:一般の総当たり戦表のように、斜め棒を引いてもいいが、後にセルの幅等の変更や表全体のコピーをした際にズレてしまいがちなので、個人的には避けておきたい。他には、「セルのロック」などの機能を使って入力自体をさせない方法も考えられるが、これも後の変更がある場合には、ロックしたセルを管理しきれない可能性があるので、個人的には避けている。
また、「セルに着色」で「グレー」を選んだのは、背景の色と文字の色が一致した場合(もしくは似た色だった場合)、誤入力しても目視では分からないため(背景黒で黒文字表示した場合など)、黒文字もしくは白抜き文字で入力されても分かるようにするためだ。もっとも、グレー背景でも、文字色を(間違って)グレーにしてしまったら同様に対処できないが、(一般的な設定の)黒文字でグレー背景なら発見しやすくなるので、「他の背景白色の入力欄と区別がつき」かつ「黒文字を入力しても文字が認識できる」濃さのグレー背景を、個人的に採用している。
次に、総当たり戦表の特徴として、
自チームの成績と対戦相手の成績はリンクしている
ことを利用して、入力作業の省略を図りたい。
自チームの勝利は対戦相手の敗北
自チームの敗北は対戦相手の勝利
自チームの引分は対戦相手の引分
であり、具体的には、「阪神」の「横浜」との直接対戦成績で、
阪神の対横浜戦成績:a勝b敗c分け
だった時は、
横浜の対阪神戦成績:b勝a敗c分け
になる。
上記のExcel表で言えば、
「横浜の対阪神戦成績勝ち数(セルJ7)」=「阪神の対横浜戦成績負け数(セルN6)」
「横浜の対阪神戦成績負け数(セルK7)」=「阪神の対横浜戦成績勝ち数(セルM6)」
「横浜の対阪神戦成績引分数(セルL7)」=「阪神の対横浜戦成績引分数(セルO6)」
のように、横浜の対阪神成績は、阪神の対横浜戦成績を参照することで表示できる。

このように、(前年度順位)3位以下も同様に、(前年度順位1位)阪神の(リーグ内の)各チーム相手の直接対戦成績を参照して行けば、(前年度順位2位以下の)残りのセリーグチームの対阪神戦の直接対戦成績も自動的に表示することができる。
具体的には、前年度順位3位以下のチームの、対「前年度1位球団」との直接対戦成績は、「勝ち数」・「負け数」・「引き分け数」の順に、それぞれ参照する式として、
3位球団 「=Q6」・「=P6」・「=R6」
4位球団 「=T6」・「=S6」・「=U6」
5位球団 「=W6」・「=V6」・「=X6」
6位球団 「=Z6」・「=Y6」・「=AA6」
となる。
補足:一見すると何らかの法則性がありそうなので、3位以下の内容を、2位の内容からフィル(コピー)で一挙に省略できないかと思ったが、縦横の並びの違いや(1位から見て)負け勝ち引分の順になるなど、フィルをやってみても思ったようにはならなかった。ここは手間だが、一つずつセルごとに参照先を設定していくしかないだろう。(個人の能力による限界です)
続いて、(前年度順位)2位球団は、(既に参照している1位球団以外の)3位以下球団との直接対戦成績を入力すれば、3位以下球団はそれを参照することで2位球団との対戦成績を自動的に表示できる。
2位以下チームとの直接対戦成績の参照式も、先ほどの1位チームを参照したのと同様に、一つずつセルごとに2位チームの対戦成績を参照すればいいのだが、これについては、コピー作業である程度省略できる。と言うのも、2位チームの対1位チームとの対戦成績(勝ち負け引き分け)を、3位チームの対2位チームとの対戦成績のセルに移動する動き(右斜め下に3セル分まとめて移動)は、参照先の、1位チームが対2位チームとの対戦成績を、2位チームが3位チームの対戦成績のセルに移動する動きと一致するからだ。

よって、1位チーム相手の2位チームから5位チームまでの直接対戦成績を丸ごと「コピー」して、2位チーム相手の3位から6位チームまでの直接対戦成績に「貼り付け」れば、3位以下チームの、対2位チームとの対戦成績が反映される。

同様に、
2位チーム相手の3位から5位チームの直接対戦成績を「コピー」して3位チームの4位から6位チームまでの直接対戦成績に、
3位チーム相手の4位から5位チームの直接対戦成績を「コピー」して4位チームの5位から6位チームまでの直接対戦成績に、
4位チーム相手の5位チームの直接対戦成績を「コピー」して5位チームの6位チームとの直接対戦成績に、
「貼り付け」れば、総当たり戦での参照式は完成する。

これで、総当たり戦表において、
(前年度順位)1位球団は2位以下球団との、それぞれ直接対戦成績を入力して、2位以下の球団の対1位球団との対戦成績は1位球団の成績を参照することで表示させ、
以下同様に、
(前年度順位)2位球団は3位以下球団との、
(前年度順位)3位球団は4位以下球団との、
(前年度順位)4位球団は5位以下球団との、
(前年度順位)5位球団は6位球団との、
それぞれ直接対戦成績を入力して、(順位が)下の球団は(順位が)上の球団の成績を参照することで、自動的に6球団すべての直接対戦成績を表示できるようになった。
補足:総当たり戦表では、対戦相手の成績とリンクしているので、対戦したどちらかの成績を入力して対戦相手はそれを反映させるようにしておけば、入力作業は半分で済む。今回の例で言えば、総当たり戦表の右斜め上部分を入力枠として、左斜め下部分はそれを参照して自動表示させる出力枠にした。もちろん、入力と参照を逆にしても、参照式さえ合っていれば、結果は同じになる。その意味では、どちらを入力枠にしても問題はないが、今回は、(前年度)上位チームから見た成績入力を、優先させることにした。
次の注意点としては、表での行の「対○○戦」とした項目表示について、後々対処が必要になる可能性があるので、触れておきたい。
今回の表では、通常の総当たり戦表と違って、
・行には対戦相手の各球団ごとに「勝ち負け分け」の3項目で入力するため、見栄えが悪くなりやすく、また、表の参照をする関数を使った際にエラーの要因になる
という懸念がある。
行の項目には、対阪神の「勝利数」、対阪神の「敗北数」、対阪神の「引き分け数」、のような形で、各対戦相手ごとに3つの項目表示する(セル「J4」に続いてセル「K4」とセル「L4」にも、「対阪神戦」と表示する)ことになり、煩雑になる。
もちろん、勝ち数の項目でだけ表示させて、負け数と引き分け数の対戦相手球団名の項目を空白にしたままでも、見て理解はできるので、空白のままでもかまわない。ただし、のちのち、今表示している(昨年度順位の並びの)表を、現在の成績に応じた順位に(対戦成績も含めた表ごと)入れ替える際、使う関数によってはエラーになる可能性があるため、空白なく埋めておく必要がある。(必要ない場合もあります)。
見栄えを優先すれば、その項目表示をセル結合してしまいたくなる(上記画像でのセル「J4~L4」を結合した一つのセルで「対阪神戦」と表示)ところだが、先のことを考えれば、セル結合は避けておきたい。
と言うのも、セルを結合すると、後々の、(単独セルでは問題ない)行や列の追加や、表全体の順番入れ替えなどで、不具合やエラーが出やすいからだ。(個人の経験です)
よって、セル「J4」に続いてセル「K4」とセル「L4」にも同様に、同じ式「=”対”&B6」と入力し、セル「M4」~「O4」には式「=”対”&B7」、セル「P4」~「R4」には式「=”対”&B8」・・・、と3項目ずつ6球団分入力して行けばいいだろう。ただ、少しでも手間を省きたいのであれば、「負け数」と「引分数」の項目は(列を参照せずに)「勝ち数」の項目セルを参照しても同じことなので、セル「K4」とセル「L4」には式「=J4」と入力し、その「負け数」と「引分数」の項目を表示する式をコピーして、右側に続く同じ項目に「張り付け」ていく。そうすれば、結果的に、「勝ち数」の「球団名」の項目が正確に参照できていれば、「負け数」と「引分数」の対球団項目も反映される。ただし、これもExcelの作業でよくあることだが、コピーやフィルをした際に、思っていたのと違う動きをすることはよくあり(個人の能力による経験です)、この方法を推奨するものではなく、間違えずに正確にできる方法を取ることをおススメします。
以上で、入力に(最低限)必要な枠(と項目表示)が確保できた。
補足:今回は、説明のために、2026年セリーグペナントレースを例にして、先に(昨年度順位の)球団名を入れてしまっているが、もし、パリーグや来年度以降を想定してひな型を残しておくのであれば、この後セリーグの成績内容を入力する前に、ここでいったん、球団名(セル「B6」~「B11」の入力内容)を消したうえで、シートをコピーしてひな型(仮)として保存しておいてもいいかもしれない。(あくまで途中過程の保存であり、最終的なひな型ではありません)。
入力枠の指定と実際に入力
後は、実際の成績を入力していく。
2026年セリーグペナントレースでいうと、現時点(当ブログ公開時2026年7月下旬頃)で、交流戦はすでに全日程終了して、確定した数字であるので、先に入力する。
交流戦の成績はNPBホームページに掲載されているので、それを見ながら、数字を入力する。

補足:ここで注意したいのは、入力するExcel表の順位は前年度順位の並びだが、参照するNPBホームページの表示は現時点の順位の並びになっているため、順番は一致していない(ことが多い)。入力対象を間違えないように、球団名と成績を確認しながら、各チームの交流戦成績(勝ち負け分け)の数字を入力する。
交流戦成績が確定していれば、あとは、各チームの直接対戦成績を入力すれば、(現時点での)ペナントレースの成績(勝率)が出てくる。
直接対戦成績表は、半分の入力で済むように設定したので、そこに入力していく。
ただ、入力する前に、今後の作業のことを考えて、どこに入力するのかを分かりやすいようにしておきたい。
参照式にしているセルも多くあって、そのセルに間違って入力してしまうと、参照式が上書きされたり、間違いに気づいて消去したとしてもその前の参照式まで消えてしまうからだ。
そこで、数字(直接対戦成績)を入力する欄は、見てわかるように罫線で囲むようにしてみた。

補足:
残りの(まだ入力されていない)入力欄は、「日付」も含まれるので、該当箇所にも入力枠を設けた。
既に入力済みのセル「B2」(チームのシーズン総試合数)、「B3」(リーグ内の各対戦相手とのシーズン直接対戦数)、「B6~B11」(前年度順位順のチーム名)、「G6~I11」(交流戦成績)にも、入力枠となる罫線を作成した方が分かりやすいかもしれないが、この時点では固定された数字であるので省略した。ただし来年度、再び順位予測(優勝マジック計算)を新たにスタートするときには、これらの枠の作成をしなかった箇所も入力欄であることを留意しておく必要がある。(参照式を活かしたままリセットする場合、セルの内容を消去する欄として留意しておく)。
また、直接対戦の入力欄と、左側のB列のチーム名が少し離れてしまったので、行の項目が見やすいように、右端のAB列にB列のチーム名を「コピー」して「リンクの参照」をさせた。(来年度以降も使用するための工夫。「コピー」して「貼り付け」だと、来年度順番が変わったときにAB列は「前々年度の順位」になってしまうため)。
こうして、入力欄に、直接対戦成績を埋めていくと、現時点の結果(勝率)が出てくる。

枠を設けた(前年度上位チームによる下位チームとの)直接対戦成績を入力したことで、残りの(下位チームによる上位チームとの)直接対戦成績も反映され、全チームのペナントレースでの勝ち負け引き分けの数字が出て、勝率も計算された。
これで優勝予測(マジック計算)に必要な数字と情報は、Excelにすべて入力したことになる。
今回記事では、優勝予測(マジック計算)をするために、Excelでのレイアウトを作成し、また、入力する内容が最小限で済むように工夫した上で、実際に、具体的な数字(2026年7月26日時点のセリーグペナントレースの成績)を入力して、勝率計算ができるようになった。
あとはいかにして、この入力した内容から、優勝マジック数を出したりマジック点灯・消灯の判定をしていくか。
次回記事では、ここまで設定した(できるだけの自動化を目標とする)Excel表の内容はいったん横において、(なんだかんだ言っても結局のところ)分かりにくい「優勝マジック」や「自力」・「他力」などについて、Excelを用いて分かりやすく説明を試みる(個人の困難な目標です)。[予定]