コードネームの「特殊記号」を見抜く sus4と「括弧」のロジックを解明せよ
山本式和音番号の論理エンジン構築も、いよいよ最終段階へと近づいてきました。
↓↓↓最初の記事です。まだの方は是非↓↓↓
これまでの記事で、私たちは和音の「ルート音」や、その性質を示す「M (Major)」「m (minor)」「dim (diminished)」「aug (augmented)」、そして「7th」「9th」といった主要な構成要素を判定する数式を構築してきました。
和音変換システムの表現力をさらに細分化する
コードネームの「ディテール」を正確に表現する意義
さて、今回はDB_山本式和音シートのX列からAD列にかけて、コードネームの、より詳細なディテールを表現するためのロジックに焦点を当てます。

具体的には、”sus4“、そしてG7(♭9)やC7(#5)のように、和音の性質やテンションをより具体的に示すために不可欠な「括弧()」と、その中に表示される「特殊記号♯♭」や「数字5, 9」です。
Excelにこれらのディテールを正確に表示させることで、山本式和音番号システムの表現力は、ほぼ完璧と言えるレベルにまで向上します。
今回は、これらの複雑な要素を、いかに論理的に判定し、Excelに表示させるか、その精緻な仕組みを解説していきます。

STEP1:”sus4″を表示させるロジックを解剖する!
まず手始めに、比較的シンプルな構造を持つsus4の表示ロジックから解説します。
しかし、このシンプルな数式の背景には、山本式和音番号の拡張的な思想が込められています。
X列(sus4フラグ)に記述する数式全体
DB_山本式和音シートのX2セルに、以下の数式を入力します。
=IF(L2=4,”sus4“,””)
この数式は、L2セルの値が4と等しい場合にのみ”sus4“という文字列を返す、非常にシンプルなIF関数です。

IF関数の条件:L2=4の詳細
このロジックの鍵は、[その他]列であるL2セルにあります。
山本式和音番号の体系において、sus4和音は、その特殊な性質から「その他」のカテゴリに分類され、フラグとして4という数字が割り当てられています。
したがって、この条件式は「L列に4が入力されている和音をsus4と判定する」という、直接的なルールを表現しています。
ここで重要なのが、山本式和音番号の哲学におけるsus4の取り扱いです。
古典和声学の解釈では、sus4(掛留音)は後続の和音に「解決」することが前提です。
例えばGsus4 → Gという進行において、その機能の本質はドミナントであるGにあります。
そのため、このようなケースでは、山本式和音番号ではsus4を記録せず、GまたはG7(和音番号5または57)として扱います。

※つまり上記の場合、sus4は使用しません。
山本式和音番号システムでsus4を使用するのは、その和音が解決せずに全く別の和音に進行する場合のみです。
映画「となりのトトロ」のBGMで聴かれるCsus4 → A♭M7のような進行は、その典型例です。

これは、山本式和音番号が、古典的な枠組みを超えて、作曲家の「音楽的意図」そのものをデータ化しようとする、システムの拡張性を示す好例と言えるでしょう。
STEP2:コードネームの「括弧」と「変化記号」を正確に表現する!
次に、Dm7(♭5)やG7(♭9)といった、コードネームにおける括弧とその中身を生成する、一連の連携する数式群を解説します。
ここが、今回の記事のクライマックスです。
Y列(()の数式:括弧を開く条件
まず、Y列に”(“(丸括弧の開始記号)を表示させる、いわば「ゲートキーパー」となる数式です。
=IF(OR(AND(F2=2,G2=7,J2<>“”),AND(F2=5,G2=9,H2>=1,I2=8,J2=“”),AND(F2=5,G2=9,I2=“”,J2<>“”),AND(G2=7,K2=”+“)),“(“,“”)
この数式は、コードネームに括弧表記が必要となる、以下の4つの特殊なケースを網羅しています。
条件1: AND(F2=2,G2=7,J2<>””)
II度7の借用和音(例: Dm7(♭5))のケース。

条件2: AND(F2=5,G2=9,H2>=1,I2=8,J2=””)
V度9の根音省略、転回形(例: Bm7(♭5))のケース。

条件3: AND(F2=5,G2=9,I2=””,J2<>””)
V度9の借用和音で根音省略なし(例: G7(♭9))のケース。

条件4: AND(G2=7,K2=”+”)
7th和音で上方変位あり(例: G7(#5))のケース。

これらの和音は、いずれも(♭5)や(♭9)、(#5)といった付加情報を持つため、括弧が必要となります。

Z列(♯♭)の数式:変化記号を表示する条件
次に、Z列に”♭“または”♯“を表示させる数式です。ここではIFS関数が活躍します。
=IFS(OR(AND(F2=2,G2=7,J2<>“”),AND(F2=5,G2=9,H2>=1,I2=8,J2=“”),AND(F2=5,G2=9,I2=“”,J2<>“”)),”♭“,AND(G2=7,K2=”+“),”♯“,TRUE,“”)
このIFS関数は、条件を順番に評価し、最初に合致した結果を返します。
“♭”を表示する条件: 上記のY列の条件1〜3に合致する場合です。これらは全て(♭5)や(♭9)といった、フラット系の変化を伴います。
“♯”を表示する条件: Y列の条件4に合致する場合です。これは(#5)といった、シャープ系の変化を伴います。

AA列とAC列(5と9):テンションの数字を表示する
AA列とAC列は、変化するテンションが5thなのか9thなのかを示す数字を表示します。
AB列は将来の拡張用で、現時点では使用しません。
AA列(5)の数式:
=IF(OR(AND(F2=2,G2=7,J2<>“”),AND(F2=5,G2=9,H2>=1,I2=8,J2=“”),AND(G2=7,K2=”+“)),5,“”)
【解説】 この数式は、Dm7(♭5)、Bm7(♭5)、G7(#5)のように、5thの音に変化がある場合に”5“を表示させます。

AC列(9)の数式:
=IF(AND(F2=5,G2=9,I2=“”,J2<>“”),9,“”)
【解説】 この数式は、V度9の借用和音で根音省略がない場合(例: G7(♭9))にのみ”9“を表示させます。
これはW列の一般的な9th和音とは異なる、「借用和音における9thの特殊表記」を目的としています。

AD列 “)”の数式:括弧を閉じるシンプルな条件
最後に、AD列に”)“を表示させる、非常にシンプルな数式です。
=IF(Y2=”(“,”)“,“”)
【解説】 この数式のロジックはただ一つ、「Y列に(が表示されている場合にのみ、対応するAD列に)を表示する」というものです。
括弧は必ず開いたら閉じる、という記号の整合性を、この上なくシンプルに担保しています。
まとめ:高度な表記もこれで完璧
今回の記事では、基本的な論理関数を連携させることで、”sus4“、括弧、変化記号、そしてテンションの数字といった、コードネームの細かなディテールを表現する、一連の数式ロジックを構築しました。
sus4のロジックにおける山本式和音番号の哲学、そして括弧内の各要素を、いかに連動させながら判定・表示させるか、その精緻なシステムをご理解いただけたかと思います。
一見すると無関係に見える各列の数式が、実は互いに連携しあって、一つの美しいコードネームを組み立てているのです。
次回の記事では、オンコードの表記(例:C/Eの「/E」の部分)の構築に着手します。
プロジェクトの大きな節目は、もう目前です。お楽しみに!