ヘレンはマクロを使用して、単純な数字のパターンを生成しました。 1つの列に含まれるパターンは、次のようになります。

1,1,0,2,2,0,3,3,0,4,4,0,...

ヘレンは、マクロの代わりに数式を使用して同じパターンを生成する方法があるかどうか疑問に思っていました。

実際には、目的のパターンを実現するために使用できるいくつかの異なる式があります。 1つの方法は、セルA1からA3のシードシーケンス(1、1、0)から開始することです。次に、数式= A1 + 1をセルA4に入力し、数式= A4をセルA5に入力し、数式= A3をセルA6に入力します。これで、A4:A6のセルを選択し、塗りつぶしハンドルを使用して、必要な数の行をドラッグして塗りつぶすことができます。

別の数式によるアプローチは、シードシーケンス(1、1、0)をセルA1からA3に入れてから、次の数式をセルA4に入力することです。

=IF(A1<>0,A1+1,0)

この数式を必要な数のセルにコピーして、目的のパターンを繰り返すことができます。

シードシーケンスを使用したくない場合(たとえば、シーケンスは常に1、1、0で始まります)、セルA1で始まる直線数式を使用できます。次の式のいずれでも同じ結果が得られます:

=IF(MOD(ROW(),3)=0,0,INT(ROW()/3)+1)

=(INT(ROW()/3)+1)*(MOD(ROW(),3)<>0)

数式(およびこれらの数式の多くのバリエーション)は、数式が配置されている行を調べて、それが各セットの1行目、2行目、または3行目にあるかどうかを判断します。この位置に基づいて、数式は「セット番号」(1、2、3など)を表示するか、ゼロ値を表示するかを決定します。

パターンがワークシートの最初の行で始まらない場合は、最初の行からのオフセットを考慮して数式を調整する必要があります。たとえば、パターンが2行目から始まる場合(最初の行にヘッダーがある場合があります)、式は次のように調整できます。

=IF(MOD(ROW()-1,3)=0,0,INT((ROW()-1)/3)+1)

=(INT((ROW()-1)/3)+1)*(MOD(ROW()-1,3)<>0)

数式を2行目に入力し、必要に応じてコピーします。他の行のオフセットを調整するには、-1の値(各数式に2つ)を、数式を最初の行から押し下げた行数に変更するだけです。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(11988)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。

Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります: