• ベストアンサー

エクセルで別のシートのデータを19行おきに参照表示したい。

エクセルで別のシートのデータを19行おきに参照表示したい。 Sheet1のB3,B22,B41の値を、Sheet2のB4~B5(セルが結合されています)、B6~B7、B8~B9に表示させたいです。 Sheet2のそれ以降はオートフィルドラッグで式がコピーできるようにしたいのですが セルの連結の為  =OFFSET(sheet1!B$3,(ROW(B1)-1)*19,0) だと B6~B7には、B22の値でなく、B41の値が入ってしまいます。 どなたか教えてください。宜しくお願い致します。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

最も簡単な対応はSheet2のB4~B5に「'=Sheet1!B3」、B6~B7「'=Sheet1!B22」と式の前にアポストロフィーを付け、その2つのセルをオートフィルコピーし、そのまま「データ」「区切り位置」で「完了」します。 数式で対応するなら以下のようになります。 =OFFSET(sheet1!B$3,(ROW(B1)-1)/2*19,0)

noriben-2
質問者

お礼

MackyNo1さん ありがとうございました。 質問なのですが、,(ROW(B1)-1)/2*19,0) の式で 「/2」とありますが この意味を教えてください。 宜しくお願い致します。

noriben-2
質問者

補足

MackyNo1さん ありがとうございました。 質問なのですが、,(ROW(B1)-1)/2*19,0) の式で 「/2」とありますが この意味を教えてください。 宜しくお願い致します。

その他の回答 (3)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

>、,(ROW(B1)-1)/2*19,0) の式で 「/2」とありますが >この意味を教えてください。 元の数式はセルが結合されているため1つ下のセルは実際は2つ下のるとなりますので、「ROW(B1)」の部分は「ROW(B3)」(=3のこと)になります。 同様にその下のセルは「ROW(B5)」となり、元の数式のようにそれぞれ1を引くと、上から順に0,2,4・・・となります。この部分が、それぞれ0,1,2となるように2で割り算したわけです。

noriben-2
質問者

お礼

なるほど!良く分かりました。 すばやい回答と、ご説明をありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

訂正します。シート2のB4セルには次の式を入力して下方にオートフィルドラッグしてください。 =IF(MOD(ROW(A1),2)=0,"",IF(INDEX(Sheet1!B$3:B$1000,ROUNDUP(ROW(A1)/2,0)*19-18)=0,"",INDEX(Sheet1!B$3:B$1000,ROUNDUP(ROW(A1)/2,0)*19-18)))

noriben-2
質問者

お礼

ちょっと難しい式ですが、出来ることを確認しました! すごいです。 ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

シート2のB4セルには次の式を入力して下方にオートフィルドラッグします。 =IF(MOD(ROW(A1),2)=0,"",IF(INDEX(Sheet1!B$3:B$1000,ROUNDUP(ROW(A1)/2,0)*19-16)=0,"",INDEX(Sheet1!B$3:B$1000,ROUNDUP(ROW(A1)/2,0)*19-16)))