- ベストアンサー
エクセルについて質問
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ものすごーく強引なやり方になりますが 質問時の画像に対応した関数を書きます。 必要に応じて列を変更してください。 まずD列2行目は必ず1になるので1を手で入力してください。 次にD列3行目に以下の式をそのままコピーしてください。 =IF(LOOKUP(D2,A:A,B:B)=0,D2+1,IF(LOOKUP(D2,A:A,B:B)=1,D2+1,IF(AND(LOOKUP(D2,A:A,B:B)=2,D2=D1),D2+1,D2))) 式を入力したセルを4行目以降にコピーすれば上手くいくと思います。 こういうのはマクロを実装したほうが何かと便利だと思いますが マクロではだめなのでしょうか?
その他の回答 (1)
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答No.2
お示しの例ではA2セルから下方に1から1000までデータがあるとしていますね。 作業列をA1001セルから下方に設けるとしてA1001セルには次の式を入力して下方に(A2001セルまで)オートフィルドッグします。 =IF(ROW(A1)>1000,"",IF(B2=2,A2+0.1,"")) その後にお求めのD列への表示ですが、D2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(ROW(A1)>COUNT(A:A),"",ROUND(SMALL(A:A,ROW(A1)),0))
質問者
お礼
参考になりました。 ありがとうございました。
お礼
できました。 ありがとうございました。 マクロは勉強不足でして、ソースコードとか教えてもらっても、セルの場所とか値を変えたときに自分で調整できない・・・と思うので。