月ごとの売上を示す列がいくつかあります。たとえば、次の列は、2 か月前にこの顧客から 3,555 ドルの売上があったことを示している可能性があります。
0,0,0,0,0,0,0,0,0,3555,0,0
前回の販売からの月数を計算する数式が必要です。つまり、この場合の結果は 2 になるはずです。
答え1
Jook の回答をさらに詳しく説明します。
1 か月目から 12 か月目の売上値がセル A1:L1 にあると仮定します。
配列数式を使用して目的の結果を得ることができます。
=COLUMN(L1)-MAX(IF(A1:L1>0,COLUMN(A1:L1),0))
数式を入力し、Ctrl+ Shift+と入力しEnter て配列数式として指定します。Excel は自動的に中括弧を表示します。
{=COLUMN(L1)-MAX(IF(A1:L1>0,COLUMN(A1:L1),0))}
(中括弧は入力しないでください。)
これにより、売上高が 0 より大きいセルの列番号を保持する仮想配列が作成され、最大の列番号 (つまり、レポート期間の終了に最も近い列番号) が検索されます。次に、最後の列の番号からこの値を減算する必要があります。
答え2
この問題に対する簡単な解決策はここにあります。ただし、ヘルパー行が必要なので、改善の余地があります。ここからは他の誰かが対応してくれるかもしれません。
セットアップは次のとおりです:
month 1 2 3 4 5 6 7 8 9 10 11 12
sale 0 0 0 0 5 0 0 0 8 11 0 0
help 0 0 0 0 5 0 0 0 9 10 0 0
ヘルプ式:
IF(SALE>0,MONTH,0) - IF(A2>0,A1,0)
前回の販売から経過した月数:
MAX(A1:L1)-MATCH(MAX(A3:L3);A3:L3;0)
主な問題は、売上値が 0 より大きい最大列番号を取得することです。現時点では、ヘルパー行なしでこの問題を解決するには、VBA とマトリックス関数しか思いつきません。しかし、何かが足りないような気がします。