• ベストアンサー

エクセルでの数式によるセルの指定

エクセルで関数中のセルの指定をするとき、計算式を使う方法はないのですか? (例えば A6+1 で A7 を指定するなど) 入力した数値によって、セル間隔を指定して値を取り出したいのです。 (5を入力したとき元のデータから5つ間隔のセルのデ入力値を取り出す) うまく文章にできなかったため、質問の意図ががうまく伝わっているか不安ですがよろしくお願いします。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.8

こういうことでしょうか。 B1に、 =IF($C$1*(ROW(B1)-1)>=COUNT(A:A),"",OFFSET($A$1,$C$1*(ROW(B1)-1),0,1,1)) と入力して下の行へコピー なお、COUNT(A:A)は、直接「2001」という値に替えてもOK。

その他の回答 (10)

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.11

B列すべてを =OFFSET($A$1,ROW()*($C$1-1),0) にします。

hi-ka-
質問者

お礼

回答してくださった皆様ありがとうございます。 なるほどーと思いました。関数を使ったのが今回初めてで関数の使い方を勉強させていただきました。 maruru01さんのIF関数の使い方がすごく参考になりました。いろいろと流用できそうです。 ありがとうございました。またよろしくお願いします。

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.10

たぶん、こういうことだと思います。 No.7と同じですが、行を絶対参照にしないと・・・ =IF(OFFSET(A$1,C$1*(ROW()-1),0)="","",OFFSET(A$1,C$1*(ROW()-1),0))

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.9

No.8の訂正 COUNT(A:A)→COUNTA(A:A) COUNT関数では、数値しかカウントしません。

  • fuzzball
  • ベストアンサー率19% (45/233)
回答No.7

すみません、No.6は大嘘です。 以下、訂正版。 [B1]は『=A1』 [B2]以下は全て『=OFFSET( A1, C1*(ROW()-1), 0 )』 どうでしょうか?

  • fuzzball
  • ベストアンサー率19% (45/233)
回答No.6

[B1] =A1 [B2] =OFFSET( A1, B1+C1-1, 0 ) [B3] =OFFSET( A1, B2+C1-1, 0 ) [B4] =OFFSET( A1, B3+C1-1, 0 ) [B5] =OFFSET( A1, B4+C1-1, 0 )    :      : (以下省略) これでどうでしょうか?

  • fuzzball
  • ベストアンサー率19% (45/233)
回答No.5

OFFSET の方がいいですね‥スミマセン。 =INDIRECT( ADDRESS(6+E1,1) )    ↓ =OFFSET( A6, E1, 0 )

  • fuzzball
  • ベストアンサー率19% (45/233)
回答No.4

訂正です。 『A&を基準に』→『A6を基準に』です。 シフト押しっぱなしでした‥。

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.3

=OFFSET関数を使えば良いと思います。 もし、関数の使用方法がわからないのであれば、 ○セルに数値、×セルに式、データエリアの左上が△セルといったエクセルシートの位置関係を補足してください。

  • fuzzball
  • ベストアンサー率19% (45/233)
回答No.2

=INDIRECT( ADDRESS(6+E1,1) ) この場合、A&を基準に、E1に書かれた数字分だけ下のセルの値を読み出します。 最初の6が、A6の'6'、最後の1が、A6の'A' をそれぞれ表しています。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 OFFSET関数がいいと思います。 仮に、元のセルがA1として、下へ5つ移動したセル(A6)を参照するには、 =OFFSET(A1,5,0,1,1) となります。 列方向も同時に移動出来ます。 複数のセルを一度に参照することも出来ます。 詳細はヘルプを参照して下さい。

hi-ka-
質問者

補足

すぐの回答ありがとうございます。 早速ためしてみました。OFFSET関数の(基準、行数、列数、高さ、幅)の行数に(セルに入力した5)を指定しました。関数を次のセルにコピーして初めのセルには五つ下のデータが出るのですが、五つ間隔にはなりませんでした。 元のデータがA1~A2001まで入力されています。C1に入力した間隔で、列Aのデータを列Bに(空白のセルを作らず連続して)抽出したいのです。C1の値を変えることをで列B二抽出された列Aのデータの間隔も変えたいのです。 もともと、C1に入力した値を関数中のセル番号にたしたかったのですが、(A1にC1の入力データ5をたしてA6)こうするとA1の入力値に+5されてしまいます。 説明がうまくなくてすみませんがC1の値を入力するとその間隔で列Bに抽出できるようにはできないですか?

関連するQ&A