40pt
これでどうですか。
=MAX(IF(B2:M2<>"",COLUMN(B2:M2),-1))-MIN(IF(B2:M2<>"",COLUMN(B2:M2),""))+1
入力方法は 1 の回答と同じです。
40pt
例えばB2からM2にデータがあったら次ぎの数式を入れて、Ctrl+Shift+Enterで配列数式にしてください。
=LARGE(IF(B2:M2="",0,COLUMN(B2:M2)),1)-SMALL(IF(B2:M2="",14,COLUMN(B2:M2)),1)+1
後は下にオートフィルです。
でも、1万行だと配列数式は重くなるかもしれません。
その場合はVBAかな。
ありがとうございます!
しかし#VALUEとのこと…
対象期間が24ヶ月や36ヶ月とかになったら式の中の「14」などの数字も変わるのでしょうか。
コメント欄が空いていないのでここに書き込ませていただきます。
> しかし同じく#VALUEでした・・・
たぶん入力方法が悪いのだと思います。
数式を入力した後に 1 に書いてある通り、Shift+Ctrl+Enter を押して入力してください。
そうすると、数式の両側に{}が付いて以下のようになります。
{=MAX(IF(B2:M2<>"",COLUMN(B2:M2),-1))-MIN(IF(B2:M2<>"",COLUMN(B2:M2),""))+1}
これでちゃんと計算できるようになると思いますので、再度トライしてみてください。
セルにあわせてShift+Ctrl+Enter を押してました!
式の後にカーソルを合わせてShift+Ctrl+Enter を押せばよかったのですね!
ありがとうございます!
ありがとうございます。
しかし同じく#VALUEでした・・・
元データが悪いのかと思い、新規エクセルで一行だけ数字を入れてみて試したのですが、
ダメでした…
エクセル2003だとダメなどありますでしょうか?