• ベストアンサー

EXCELの関数を教えてください

EXCELであるデータの集合から、ある一定の間隔でセルの数値を取り出すような関数は無いでしょうか(例えば、180のデータから、セル3個ごとにデータを取り出して、最終的に60個のデータになるようなことです)。 よろしくお願いします。

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

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

セルA1 から 下に数値が入力されているとして、3個おきに抽出するには、 例えば、B1に下記の式を入力し、下にコピーします。 =INDIRECT("A" & ROW(A1)*3-2) または、 =INDEX(A$1:A$100,ROW(A1)*3-2,1) で如何でしょうか。

rare_metal
質問者

お礼

回答ありがとうございます。 できました。 ありがとうございました。 皆さん、回答ありがとうございます。 ポイントのほうですが、勝手ながら私がわかりやすかった方法を伝授してくださった方につけさせていただきます。 またの機会がありましたら、そのときもよろしくお願いします。

その他の回答 (5)

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

既出回答と似てますが、別解と思いますので。 A列にデータがあるとして、別列1行目に =OFFSET($A$1,(ROW()-1)*3,0) と入れて下へデータ数の1/3の数ほど複写します。 1、4、7、10、・・・が別列へ移ります。 その隣の列(項目)も移すのは、別列の隣の第1行へ =OFFSET($A$1,(ROW()-1)*3,1)と入れて下へ複写します。

rare_metal
質問者

お礼

回答ありがとうございます。 できました。 ありございました(^○^)。

  • ayasu
  • ベストアンサー率35% (56/156)
回答No.4

「同じ列から3行飛ばしでデータを持ってくる」でよろしいのでしょうか? 例えばA列に元データがあってC列に上記のようにデータを取り出すとして、B列に1から60の番号を振り、C1に =offset($A$1,3*B1,0) という関数を入れC60までコピーします。 いかがでしょうか?

rare_metal
質問者

お礼

回答ありがとうございます。 できました。 ありございました(^○^)。

  • Hageoyadi
  • ベストアンサー率40% (3145/7860)
回答No.3

「○行ごと」ならできます。 データの直前に通し番号を振ります。ここではA列に通し番号、B列に表示させたいデータが並んでるとしましょうか。 で、抽出データをH列にでも表示させるとして、G列とH列に関数を入力します。 たとえば2行おきのデータを抽出する場合、 G1=ROW()*2として、これを下方にコピーします。 H1=VLOOKUP(G1,A2:B25,2)と入力して下方にコピーします。 データの始まる行によってROW()*2-1などの小技を使う必要がありますが。

rare_metal
質問者

お礼

回答ありがとうございます。 できました。 ありございました(^○^)。

回答No.2

indirect関数を使ってみたらどうですか? もし、A列に 1 2 3 : : と並んでいるデータなら、B列にオートフィルを使って A1 A4 A7 : : と入力します。C列に =indirect(B1) として、あとはオートフィルで。

rare_metal
質問者

お礼

回答ありがとうございます。 できました。 ありございました(^○^)。

  • PAPA0427
  • ベストアンサー率22% (559/2488)
回答No.1

ないです。 VBAでプログラムかかれた方が早いですよ。勉強は必要ですが。

rare_metal
質問者

お礼

回答ありがとうございます。 ないとのことですが、上の方々のやり方でできました。

関連するQ&A