- ベストアンサー
エクセルで別のシートのデータを5行おきに参照して集計したい
別のシート(sheet1)のデータを5行おき(C5・C10・C15~)に参照して、別のシート(sheet2)の表(D1・D2・D3~)に順番に書き込ませたいのですが、D1に次の式 =OFFSET('sheet1 '!C5,5,0) をいれ、D2移行D1をコピー貼り付けすると、=OFFSET('sheet1 '!C6,5,0) =OFFSET('sheet1 '!C7,5,0) =OFFSET('sheet1 '!C8,5,0) と参照先が C6 C7 C8とずれて、C5 C10 C15 となってくれません。 どう式を作れば良いのでしょうか? 教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No1です。 > 教えていただいた=OFFSET(Sheet1!C$5,(ROW()-1)*5,0) を入力してみましたが、欲しい行を参照してくれないのです。 (sheet1)のデータを5行おき(C5・C10・C15~)と参照するのであれば、D1に上記をコピペしてそのまま下へドラッグすれば出来るはずです。式には$もちゃんと入れましたか?$があれば下へ持ってきてもSheet1!C$5は変わりません。) > C7が基準で、C11 C29 C40 C51 ~ どういう基準ですか?5行おきどころか規則性がぜんぜん無いようですが??? 規則性がなければ関数でもVBAでも出来ません。 C7基準で仮に7行おきならば式をいじらず、 =OFFSET(Sheet1!C$7,(ROW(D1)-1)*7,0) をそのままコピペして下にドラッグしてみてください。
その他の回答 (3)
- mshr1962
- ベストアンサー率39% (7417/18945)
単にC5,C10,....を抽出すればいいなら =Offset(Sheet1!$C$1,ROW()*5-1,0) ですね。一気に計算なら =SUMPRODUCT((MOD(ROW(Sheet1!C1:C100),5)=0)*(Sheet1!C1:C100))
お礼
ありがとうございました
- EL-SUR
- ベストアンサー率76% (83/108)
別案です。 Sheet2のD1: =INDEX(Sheet1!C:C,ROW(C1)*5) 必要なだけ下にフィルコピー。
お礼
ありがとうございました。 今後の参考に、メモしておきます。
- merlionXX
- ベストアンサー率48% (1930/4007)
=OFFSET(Sheet1!C$5,(ROW()-1)*5,0) でいいと思います。
補足
過去の質問を参考に、merlionXXさんから教えていただいた=OFFSET(Sheet1!C$5,(ROW()-1)*5,0) を入力してみましたが、欲しい行を参照してくれないのです。 実際は、C7が基準で、C11 C29 C40 C51 ~と参照してゆきたいので、D1に ='sheet1'!C7 とし、D2に =OFFSET('sheet1'!C7,(ROW()-1)*11,0) と入力すると、なんと C51のデータが参照されしまいます。 D3 =OFFSET('sheet1'!C8,(ROW()-1)*11,0) は、12行下のC63が参照され、 D4 =OFFSET('sheet1'!C9,(ROW()-1)*11,0) は、そのまた12行下のC75が参照されてしまいます。 実は、C列にはやはり、11行おきにA13~C13、A24~C24とセルの結合されてところがあります。これは影響するでしょうか?
お礼
> C7が基準で、C11 C29 C40 C51 ~ は、C7が基準で、C18 C29 C40 C51 ~ 11行おきの間違えでした。すみません。 今度は =OFFSET(Sheet1!C$7,(ROW(D1)-1)*7,0) を =OFFSET(Sheet1!C$7,(ROW(D1)-1)*11,0) に直して 見事成功しました。すごいですね!感激です。 ありがとうございました。