- ベストアンサー
エクセルで別のシートのデータを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の値が入ってしまいます。 どなたか教えてください。宜しくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
最も簡単な対応はSheet2のB4~B5に「'=Sheet1!B3」、B6~B7「'=Sheet1!B22」と式の前にアポストロフィーを付け、その2つのセルをオートフィルコピーし、そのまま「データ」「区切り位置」で「完了」します。 数式で対応するなら以下のようになります。 =OFFSET(sheet1!B$3,(ROW(B1)-1)/2*19,0)
その他の回答 (3)
- MackyNo1
- ベストアンサー率53% (1521/2850)
>、,(ROW(B1)-1)/2*19,0) の式で 「/2」とありますが >この意味を教えてください。 元の数式はセルが結合されているため1つ下のセルは実際は2つ下のるとなりますので、「ROW(B1)」の部分は「ROW(B3)」(=3のこと)になります。 同様にその下のセルは「ROW(B5)」となり、元の数式のようにそれぞれ1を引くと、上から順に0,2,4・・・となります。この部分が、それぞれ0,1,2となるように2で割り算したわけです。
お礼
なるほど!良く分かりました。 すばやい回答と、ご説明をありがとうございました。
- KURUMITO
- ベストアンサー率42% (1835/4283)
訂正します。シート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)))
お礼
ちょっと難しい式ですが、出来ることを確認しました! すごいです。 ありがとうございました。
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート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)))
お礼
MackyNo1さん ありがとうございました。 質問なのですが、,(ROW(B1)-1)/2*19,0) の式で 「/2」とありますが この意味を教えてください。 宜しくお願い致します。
補足
MackyNo1さん ありがとうございました。 質問なのですが、,(ROW(B1)-1)/2*19,0) の式で 「/2」とありますが この意味を教えてください。 宜しくお願い致します。