• ベストアンサー

Excel関数の数字の一部を連続で増分表示したい

=IF(VLOOKUP($CM$2,データ!$A$3:$IP$42,10)="","",VLOOKUP($CM$2,データ!$A$3:$IP$42,10)) この関数を複数のセルに連続して、「10」の部分を「11」「12」1つずつ増分させながら、連続でコピーしていきたいのですが簡単な方法はありますか? フィル機能でも「10」の部分は増えていかなかったので…

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

  • ベストアンサー
回答No.8

・・・と思ったら「下方向」なのですね。 見落としました。 そんなわけで、ROW関数ですね。 フィルする範囲の先頭に「10」を与えたいのであれば、   =IF(VLOOKUP($CM$2,データ!$A$3:$IP$42,ROW(A10))="","",VLOOKUP($CM$2,データ!$A$3:$IP$42,ROW(A10))) で、行方向にフィルしてやります。 先程の回答でも言い忘れていますが、 ROW・COLUMN関数の引数は省略できます。 省略すると、「自身の行(列)番号」を返してきます。 覚えておくと関数式の引数に連続データを採用したい時などに ちょっと便利に使えますよ。

pusuta
質問者

お礼

ROW関数でやりたかった処理がうまくいきました。ありがとうございました!

その他の回答 (7)

回答No.7

んー、VLOOKUP関数の第3引数を増やしていきたい、ってことは・・ 列方向(横)にフィルしていくのかな。 だとしたらROW関数ではなく、COLUMN関数の方が良いのでは? 関数についてはご自身で調べた方が身につきやすいのですが、 COLUMN(セル番地または範囲)あるいは ROW(セル番地または範囲)の形で それぞれ「セル範囲の先頭セルの列番号・行番号」を数値で返す関数です。 つまり、COLUMN(J1)などとすると、J1セルの列番号を・・ J列は10列目なので、「10」を返します。 なので10列目(J列)の任意のセルの列番号を返すようにしておいて、 横にフィルしていけば・・・という事で、   式:=IF(VLOOKUP($CM$2,データ!$A$3:$IP$42,COLUMN(J1))="","",VLOOKUP($CM$2,データ!$A$3:$IP$42,COLUMN(J1))) これを、列方向にフィル。 これで J1→K1→L1・・・と連続データができ、 返り値も J(10)→K(11)→L(12)・・・としてくれるはずです。 行方向(縦)に連続データを作るなら、ROW関数ですね。

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.6

>A4のセルに数式が入っていて、そこから10がスタートして、 >11、12と増えていくのでのA4の4と+6で10なので+6ということなのでしょうか? そうです。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.5

>ROW(A10)のAには何か意味があるのでしょうか? ROW関数はカッコ内のセル番地の内行番号を返しますので1個以上のセルを指定する必要があります。 ROW(10)ではカッコ内がセルを指定していないのでROW(10:10)のように行全体のセルを指定する方法で対処できますが1つのセルとしてA10を指定したのです。A10の代わりにB10、C10等でも同じ結果になります。

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.4

=IF(VLOOKUP($CM$2,データ!$A$3:$IP$42,10)="","",VLOOKUP($CM$2,データ!$A$3:$IP$42,10)) これがA4に埋まっていて、下方向にコピーしたいということなら =IF(VLOOKUP($CM$2,データ!$A$3:$IP$42,ROW()+6)="","",VLOOKUP($CM$2,データ!$A$3:$IP$42,ROW()+6)) ↑のように書き換えます。 ROW()+6) は、 計算式の埋まっている行番号に6を加えた値になります。

pusuta
質問者

補足

A4のセルに数式が入っていて、そこから10がスタートして、11、12と増えていくのでのA4の4と+6で10なので+6ということなのでしょうか?

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>この関数を複数のセルに連続して、「10」の部分を「11」「12」1つずつ増分させながら、連続でコピーしていきたいのですが簡単な方法はありますか? >上記の関数を下方向に入れたいのです。 あります。 提示の数式を下へコピーするのでしたら次のように部分修正で良いでしょう。 10 → ROW(A10)

pusuta
質問者

補足

うまくできそうです!ROW(A10)のAには何か意味があるのでしょうか?

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

=IF(VLOOKUP($CM$2,データ!$A$3:$IP$42,10)="","",VLOOKUP($CM$2,データ!$A$3:$IP$42,10)) この計算式がどのセルに埋まっているのか、 また、 >連続でコピーしていきたいのですが このコピーが下方向なのか、右方向なのかを説明すれば、 より的確なコメントができるだろうと思います。

pusuta
質問者

補足

恐れ入ります。シートのそのものはお見せできないのですが、「データ」のシート入力しているデータをVLOOKUP関数で同じファイルの別のシートに反映させるのが目的で、上記の関数を下方向に入れたいのです。 例えばA1に「10」A2に「11」という感じで絶対参照($A$3:$IP$42)の後ろの数値を順番に、10、11、12、と順に増分させたいのです。

  • f272
  • ベストアンサー率46% (8534/18272)
回答No.1

難しいことを考えたくないのであれば,例えば A2=10 B2=A2+1 と入力して,B2を右にコピーする。 その後,元の式を =IF(VLOOKUP($CM$2,データ!$A$3:$IP$42,A2)="","",VLOOKUP($CM$2,データ!$A$3:$IP$42,A2)) として,右にコピーする。

pusuta
質問者

補足

早速の回答ありがとうございます。B2を右にコピーからの操作がちょっと理解できなかったのですが…「B2を右にコピー」とはC2に「A2+1」の数式をコピーするということですか?

関連するQ&A

専門家に質問してみよう