Excel数式の集大成!コードネームを完全自動生成

Excel数式の集大成!コードネームを完全自動生成 Excel

はじめに:Excelがコードネームを「完成」させる瞬間

山本式和音番号を巡る、長く、そして知的な探求の旅も、いよいよ一つの大きなクライマックスを迎えます。

↓↓↓最初の記事です。まだの方は是非↓↓↓

これまでの16回にわたる記事で、このシステムの根底に流れる「哲学」を解説し、膨大な「音階データベース」を準備し、そして和音を構成する無数の要素(ルート音M, m, dim, aug, 7, 9, sus4, 括弧変化記号オンコードなど)を、Excelの各列に一つずつ導出する、精緻な論理体系を構築してきました。

Excelの説明画像

和音の「役割」から「コードネーム」への最終変換

今回の目的は、これまでに導出した全てのパーツを、最終的に一つの美しいコードネームとして連結・完成させること。

具体的には、DB_山本式和音シートのAL列に、和音の最終的なコードネームを自動で表示させる仕組みを、完全に構築します。

Excelの説明画像

この最終的なコードネーム生成こそが、山本式和音番号システムの「脳」が、その思考の結果を、私たちが理解できる「言葉」として具現化する瞬間です。

これまでの全ての努力が、この一つのセルに結実します。

さあ、壮大なプロジェクトの集大成を、その目でご覧ください。

今回の解説で使用するExcelファイルは、ダウンロードして適宜使用できます。学習用などにぜひご活用ください。

harmony017-2.xlsx (225KB)

STEP1:最終コードネーム生成の「司令塔」!IFS関数で表示を制御せよ!

まず、最終的なコードネームの表示を制御する、AL列の数式から解説します。

この数式は、データベース全体の表示ルールを司る、いわば「司令塔」の役割を果たします。

優先順位を明確にするIFS関数の力

AL列(コード)に記述する数式全体

DB_山本式和音シートのAL2セルに、以下の数式を入力します。

=IFS(M2=”x“,“”,AK2<>“”,AK2,TRUE,TEXTJOIN(“”,TRUE,Q2:AJ2))

この数式は、Excel 2019以降で導入されたIFS関数を司令塔として、複数の条件を優先順位の高い順に評価し、最終的なコードネームを決定する仕組みです。

IFS関数の条件グループの役割分担

IFS関数は、記述された条件を上から(左から)順番に評価し、最初にTRUEになった条件に対応する値を返して、その時点で処理を終了します。

これにより、IFの入れ子(ネスト)よりも遥かにシンプルに、明確な優先順位を設定できるのです。

この数式には、3つの優先順位が設定されています。

条件1(最優先):M2=”x”の場合の処理(「使用しない和音」の除外)

  • 条件: M2=”x”
    M列(予備1)に”x“(使用しない和音フラグ)が入力されているかを判定します。
  • 対応する値: “” (空の文字列)

【解説】

データベース上で「使用しない」と明示的にマークされた和音(第5回記事で解説した選別哲学に基づく)は、最終的なコードネームを表示せず、空白にします。

Excelの説明画像

これが最優先されることで、以降の条件(直接入力や自動生成)がどうであれ、不要な和音がコードネームとして出力されることを完全に防ぎます。

システムの設計思想が、最終表示にまで貫かれている証です。

条件2(第2優先):AK2<>””の場合の処理(「直接入力」の優先)

  • 条件: AK2<>””
    AK列(直接入力)が空欄ではないかを判定します。
  • 対応する値: AK2 (AK列の値をそのまま採用)

【解説】

次に優先されるのが、「直接入力」されたコードネームです。

数式による自動生成が困難な極めて特殊な和音(例: 増6和音の注釈付き表記など)や、ユーザーが意図的に表記を上書き(オーバーライド)したい場合に対応します。

この「直接入力」を自動生成よりも優先させることで、システムの柔軟性と実用性は飛躍的に向上します。

Excelの説明画像

条件3(通常処理):TRUEの場合の処理(「標準的な自動生成」)

  • 条件: TRUE
    上記のどの条件もTRUEでなかった場合、このTRUEは無条件でTRUEとなるため、最後の砦として必ず実行されます。
  • 対応する値: TEXTJOIN(“”,TRUE,Q2:AJ2)

【解説】
これが、M列が”x”でもなく、AK列に直接入力もされていない場合の、「標準的なコードネームの自動生成」ロジックです。

ここで登場するのがTEXTJOIN関数です。

この関数は、Q列からAJ列までの範囲にある全ての値を、指定した区切り文字(今回は””なので区切り文字なし)で連結します。

重要なのは、第二引数のTRUEです。これにより、範囲内の空白のセルは無視して連結されます。

これまでの記事で導出してきた、ルート音M, m, dim, aug, 7, 9, sus4, 括弧変化記号オンコードなど、全てのパーツがここで一つに統合され、最終的なコードネームとして完成するのです。

Excelの説明画像

STEP2:データベースの「見せ方」を最適化!フィルター機能で不要な行を非表示に!

最終的なコードネームがAL列に生成されました。

しかし、このままでは「使用しない和音」の行が空白として表示され、少し見づらいかもしれません。

そこで、Excelの基本的な機能である「フィルター」を使い、このデータベースの可読性を高めます。

必要な情報だけをスマートに表示する

AL列の空白行を非表示にするフィルター機能の活用

M列が”x“であるために空白になっている不要な行を非表示にし、実際にコードネームが生成されている行だけを表示することで、完成した「和音リスト」として活用できます。

手順は非常に簡単です。

まず、DB_山本式和音シートのヘッダー行(1行目)を選択します。

次に、「データ」タブの中にある「並べ替えとフィルター」グループから、「フィルター」をクリックします。すると、各列の見出しに▼ボタンが表示されます。

Excelの説明画像

最後に、AL列のフィルターボタン(▼)をクリックし、表示されるリストから「(空白セル)」のチェックボックスを外して「OK」をクリックします。

Excelの説明画像

たったこれだけで、空白の行が非表示になり、使用する和音のリストだけをスッキリと眺めることができます。

Excelの説明画像

STEP3:山本式和音番号変換システムの動作を検証する!

さて、作り上げたシステムは、正しく機能しているのでしょうか。

これまでの記事で解説した、特に複雑なロジックを持つ和音番号を実際に検証し、その精度を確認してみましょう。

複雑な和音で「機能」と「コードネーム」が一致するかをチェック!

厳選した和音番号でシステムの働きを確認する

DB_山本式和音シートで、以下の山本式和音番号が、意図した通りのコードネームに変換されているか確認してみてください。

属9の借用和音: 590 G7(♭9)

Excelの説明画像

V/Vの9の和音、根音省略、借用和音: 559180F#dim7

Excelの説明画像

付加46の和音: 446 Bm7(♭5)/F ※+46

Excelの説明画像

これらの複雑な和音が、AL列で正しく表示されていれば、システムは完璧に機能していると言えるでしょう。

まとめ:Excelがコードネームを「完成」させた!壮大なプロジェクトの集大成!

今回の記事で、私たちは山本式和音番号システムにおける、最終的なコードネーム自動生成の仕組みを、ついに完成させました。

IFS関数による明確な優先順位制御と、TEXTJOINによる効率的な要素の連結。

これで、山本式和音番号システムは、入力した和音番号を、正確なコードネームへと変換することができるようになりました。

さて、今回のデータベースは長調のみの対応でした。

次回の記事では、いよいよ、短調(moll)の和音をデータベースに登録する作業に移ります。

そして、長調短調の両方に対応する、完全な山本式和音番号変換システムの完成を目指します。

お楽しみに!

<続く>※現在作成中

タイトルとURLをコピーしました