• ベストアンサー

エクセルで別のシートのデータを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)))

関連するQ&A

  • Excelで別sheetの参照について

    エクセルで別sheetの参照についての質問です。 画像のようにsheet1の値を参照してsheet2表示させたいのですが、これを約100件分作成したいのですがコピー&ペーストをすると参照セルがずれてしまいます。 sheet2のA1をコピーしてA4に張り付け=Sheet1!A2&Sheet1!B2&Sheet1!C2としたいのですが、A4に張り付けを行うと=Sheet1!A4&Sheet1!B4&Sheet1!C4となってしまいます。 複数行あけてペーストする場合に参照セルを1行ずつずらして参照する方法はありますでしょうか?

  • ExcelVBA:オートフィルタをかけたシート上でのセル内の値参照について

    オートフィルタをかけた状態で、セル内の値を参照しても、オートフィルタがかかってないセル(隠れているセル)の値を参照してしまいます。 例えば、ある条件でオートフィルタをかけて、行が1,2、6,7、8・・・となって、3,4,5行が非表示になっているのにもかかわらず、 Range("A1").Offset(0, 2).Value を参照すると、6行目の値ではなくて、非表示の3行目の値を拾ってきてしまいます。 このように、オートフィルタをかけたシート上で値を参照する際に、非表示行を無視して行数取りし、値を参照したいのですが、何か方法はありますでしょうか? 上の例ですと、6行目のセルを3行目として扱いたいわけです。 どなたか、ご教授くださいませ。 よろしくお願い致します。

  • エクセルのシート参照

    Sheet1で入力した値をSheet2で参照させたい時、 Sheet1で入力したセルの行を削除してから挿入をして 値を入力させると、Sheet2のセルが「#REF!」と 表示されてしまいます。 行を削除して、挿入しても正しい値を参照させることは 可能ですか?

  • Excel 別シートのセル参照

    Excel で、二つのシート間でセル参照したいのですが、シートに書き込んでおくコマンドの書き方を教えてください。 (操作) Sheet2 でA列のどこかのセルをダブルクリックしたとき、B列およびC列の該当行の値を、Sheet1 の二つの固定セルにそれぞれ表示させる。 よろしくお願いします。

  • 他シートのデータを参照させたい(excel2007

    excel2007において、他のシートのデータを参照させる方法についてどなたか教えてください。 =sheet1!a1 のように入力して他のシートのデータを表示させる方法は使っているのですが、複数のセルのデータを参照させるのに手間取っています。 たとえばsheet1にある5行5列(25セル)のデータをsheet2の5行5列(25セル)に表示させたいときは、25個のセルすべてに上記のように入力すればいいのですが、参照させたい元の25セルのどこかにセルの結合が使われていると、sheet2においても同じように結合させなければsheet1と同じ表示になりません。 sheet1でセルの結合が使われたときはsheet2においても同じように「セルの結合も自動で参照させる(連動させる)」ということは可能なのでしょうか? 詳しい方いらっしゃいましたら、よろしくお願いいたします。

  • エクセル、各シート毎に参照行を自動でずらしたい

    元となるシートには1の行にA1のセル=4/1とあり、 その日の出勤者が B1セルにAさん C1セルにBさん…と入力されています。  そこで、4/1から4/30までのシートを新規に作成し、    4/1のシートには原本シートの1行目    4/2のシートには原本シートの2行目 と表示さえできれば、各シートまとめて参照セルを指定してしまえばできるかなと思っておりますが…どうぞよろしくお願いします。

  • エクセル 行を列に参照する NO.2

    お世話になります。 昨日 http://sp.okwave.jp/qa/q9264221.html で質問させていただきましたもののアレンジです。 昨日の質問では、 Sheet1のA1からF500...の値を Sheet2のA列に参照させたい。 Sheet1 Sheet2 A1 →A1 B1 →A2 C1 →A3 D1 →A4 E1 →A5 F1 →A6 A2 →A7 B2 →A8 C2 →A9 . . . で、 Sheet2のA1に =OFFSET(Sheet1!$A$1,(ROW()-1)/6,MOD(ROW()-1,6)) と入力して,下にコピー という完璧な回答をいただきました。 これを、違う表でアレンジしたかったのです。 Sheet1のG2からN500... の値を Sheet2のE7から下に表示したかったのです。 あれこれ試して =OFFSET(Sheet1!$G$2,(ROW()-7)/8,MOD(ROW()-7,8)) で、値の参照ができました。 この中の、 -7 の部分がわからないのです。 どなたか、わかりやすく教えていただけませんでしょうか? お忙しいとは思いますが、よろしくお願いします。

  • Excelのセル参照について

    範囲(例:2010/1/1~2010/2/1)を指定して更新すると、日にちと値を外部データから取得し、 ExcelのSheet2のA列に日にち、B列に値を表示しています。 データは月単位で拾ってきて、Sheet2に表示しています。 たとえば、2010/1/1~2010/2/1とすると、1月のデータを取得してきて、 2010/2/1~2010/3/1とすると、2/1~今日までのデータを取得してきます。 そのSheet2に表示しているB列のデータをSheet1のセルD列にセル参照しているのですが、 たとえば、2010/1/1~2010/2/1までのデータは、Sheet1のセルD1に「=Sheet2!B1」と記入して、以下オートフィルでうまくいくのですが、 2010/2/1~2010/3/1までとすると、2/1から今日までのデータはうまく表示され、 今日以降のデータはSheet2が空白なので、Sheet1で「=Sheet2!#REF!」となってしまい、以降、Sheet2にデータが取得されてもうまくセル参照されません。 Sheet1のD列の式を下記にしても、現象はかわりませんでした。 =If(Sheet2!B1="","",Sheet2!B1) =IF(ISBLANK(Sheet2!B1),"",Sheet2!B1) Sheet2で今日以降のデータが空白でも、Sheet1が「#REF」とならないように、 また、今日以降のデータは取得された際、うまく表示されるようにするのは、 どうしたらよいのでしょうか。

  • エクセルで別のシートのデータを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 となってくれません。 どう式を作れば良いのでしょうか? 教えてください。

  • R1C1形式。別シート参照時について

    題名が意味不明ですが申し訳ありません。 下記のような数式があります。 こちらのサイトで教えていただいた関数であり、すごく難しくて私もはっきり理解できてはおりませんが、R1C1形式で、セルを参照するようになっているのかな~というところまで、理解できました。 =IF(AND(ISNUMBER(INDEX($D:$D,ROW())),INDEX($D:$D,ROW()+1)=""),SUM(INDIRECT("R"&MATCH("゛",OFFSET(INDIRECT("R1C"&COLUMN($B:$B),FALSE),,,ROW()),-1)&"C"&COLUMN($D:$D)&":R"&ROW()&"C"&COLUMN($D:$D),FALSE)),"") この数式は、’同じシート’の、D列なり、特定のセルなり、、を参照しておりますが、この数式を別のシートのセルに入力して、そこから、このシートを参照させようと思います。 つまり、このシートはもともと’入力用’という名前のシートなのですが、別のシートから、この’入力用’シートの列なりセルなりを参照して値を求めたいのです。 この場合、入力用!というような文字を入れればいいのは知っているのですが、式が複雑すぎるため、どこにどう記入してよいのかがわかりません。自分なりにいろいろやってはみたのですが、REF#となってしまいました。 どこにシート名を入れればうまくいくのか教えていただけないでしょうか。 何卒お願いいたします。

専門家に質問してみよう