• ベストアンサー

エクセル オートフィルの制御について

初めまして、エクセルの行で、例えばa2セルが未入力の時に、隣のb2セルの 日付のオートフィル機能をとばすことは出来ますか? a2セルが未入力の時は、b1のセルが1/1だったら、b2はとばして、b3に、1/2と入れたいのですが、 何か、初心者にも判る方法で、出来ませんでしょうか。 どうぞよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

このようなケースでは、基本的に関数を使ったオートフィル(コピー)操作を行う必要があります。 例えば、B1に開始日が入力されているなら、B2セルに以下の式を入力し、セルの書式設定で表示形式を日付にして下方向にオートフィルするのが簡単かもしれません。 =IF(A2="","",MAX($B$1:B1)+1)

kaito_ahiru
質問者

お礼

まだ初心者で、オートフィルが関数で制御できる事を知りませんでした。 max関数も、初めて理解できました。これからこのレベル迄は使いこなせるように努力したいです。簡潔で式の意味も理解できました。有り難う御座いました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

制御と言うほど大げさなことではなかろう。 A列が空白行は値をセットせず、空白でない行はそこより上の行でデータのある最下行の値に+1する。 とでも言えば良いかな。 ーーー エクセルには (1)操作 (2)関数 (3)VBA などの処理が大きく分けて存在する。(3は質問者の場合、対象にならないだろう(VBAが判ればこんなことはプログラムで簡単)。 (1)は背後にマイクロソフトが組んだプログラムがあって、初めからできる融通性は決っている。操作して見れば判るとおり オートフィルについては質問のようなことは出来ない。 従って関数で何とかできないか考える。 しかし今関数を入れるセルの行の前で、空白行は除いて一番近の行にあるデータを採るのが、関数ではやさしくない。それズバリの単独の関数はない。 そこで工夫して 例データ A列とB1に始期の値が2011/12/1として A列    B列 1 2011/12/1 2 2011/12/2 4 2011/12/3 5 2011/12/4 2 2011/12/5 1 2011/12/6 この場合は順次増加の値を入れる場合なので、簡略化出来て B2セルに =IF(A2="","",MAX($B$1:$B1)+1) と入れて下方向に式を複写すると上記のようになる。 A列の空白行は値をセットせず、空白でない行はそこより前の行のデータのある最下行の値に+1する。

kaito_ahiru
質問者

お礼

お忙しいにもかかわらず、長文での説明有り難う御座いました。 参考にさせて頂きます。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

一例です。 B2に=IF(A2<>"",$B$1+ROW()-COUNTIF($A$2:A2,"")-1,"")を設定して下方向にコピー

kaito_ahiru
質問者

お礼

一番先に、お忙しいにもかかわらず回答して頂き、有り難う御座いました。 参考に致します。

関連するQ&A