Excelで指定した文字列を対角線方向に配置するための計算式
Excelでは、指定した文字列を対角線方向に配置するための計算式を使用することで、視覚的に魅力的なデータの表示を行うことができます。この記事では、次の式を用いて文字列を対角線上に配置する方法について詳しく解説します:
=IF(MOD(SEQUENCE(行列数,行列数)-1,行列数+1)=0,文字列,"")
この計算式の効果
この計算式を使用すると、指定したサイズの行列内で文字列を対角線方向に配置することができます。たとえば、行列数を4、文字列を「●●●」とした場合、次のように対角線上に文字列が表示されます:
●●● ●●● ●●● ●●●
計算式の動作
この式は、ExcelのSEQUENCE関数とMOD関数とIF関数とを使用して、指定した文字列を対角線上に配置します。具体的には、次の手順で動作します。
- SEQUENCE関数:
SEQUENCE(行数,列数)
を使用して、行数×列数の行列を生成します。たとえば、行数も列数も4の場合、次のような行列が生成されます。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
開始番号を0とする「インデックス」にするにはそれぞれから1を引きます。すなわち
SEQUENCE(行数,列数)-1
とします。0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- MOD関数: 生成された行列の各セルについて、そのインデックスを行列サイズ+1で割った余りを計算します。例えば、行列数が4の場合、各セルのインデックスを5で割った余りを計算します。
0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0
- IF関数: 余りが0の場合に指定した文字列を表示し、それ以外の場合は空白を表示します。たとえば、行列数が4で文字列が「●●●」の場合は以下のようになります。
●●● ●●● ●●● ●●●
計算式の構造
この計算式の構造を詳しく見ていきましょう:
SEQUENCE(行列数,行列数)
: 行列数×行列数の行列を生成します。SEQUENCE(行列数,行列数)-1
: 行列のインデックスを0から始めるために1を引きます。MOD(SEQUENCE(行列数,行列数)-1,行列数+1)
: 各インデックスを行列数+1で割った余りを計算します。IF(MOD(...)=0, 文字列, "")
: 余りが0の場合に文字列を表示し、それ以外の場合は空白を表示します。
具体例
例えば、行列数が4で文字列が「●●●」の場合、次のように入力します:
=IF(MOD(SEQUENCE(4,4)-1,4+1)=0,"●●●","")
この式をExcelの任意のセルに入力すると、指定した文字列が対角線方向に配置されます。
また行列数をA2セル、文字列をA5セルへ入力し、それを参照させるならば以下の計算式になります。
=IF(MOD(SEQUENCE(A2,A2)-1,A2+1)=0,A5,"")
この計算式を使用することで、Excelで指定した文字列を対角線方向に配置することができます。
コメント