• ベストアンサー

【エクセル関数】参照するセル

エクセル関数で教えていただきたいです。 セル参照で、参照するセルを、ある法則道理に参照していきたいのです。 例えば、シートA,シートB、とあったときに、 シートBのC3に → シートAのC3を参照、 シートBのC6に → シートAのC4を参照、 シートBのC9に → シートAのC5を参照、 シートBのC12に → シートAのC6を参照・・・・ ・・・・・・・・・・・ という風に、参照元の列は1行づつ増やしていきたいのですが、 それをシートBでは、3行ごとに表示したいのです。 自分でいろいろ試してみましたが、うまくできません。 こういったことは、関数でできるのでしょうか? もし、あれば、教えていただけると助かります。 よろしくお願いします。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

一例です。 シートBのC3に=IF(MOD(ROW(A3),3)=0,OFFSET(Sheet1!$C$3,INT(ROW(A2)/3),),"")を設定、下方向にコピー

その他の回答 (6)

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

算数の数列の問題だよ。 3 6 9 12 15 ・・・ 等差3 3 4 5 6 7 ・・・  等差1 だから上を3で割ることになる。このときー1するのがコツ (3-1)/3+3 -->3 割り算は商を求める (6-1)/3+3 -->4 (9-1)/3+3 -->5 (12-1)/3+3-->6 ---- ただし 3/3+2 6/3+2 でも今回は出来るが ーーー シートBのC3に  シートBのC6に ・・ とセル3つごとに飛び飛びに式を入れる。 これが関数の式の(連続セルの)複写の良さを殺してしまう。 Sheet2のC3に =INDIRECT("Sheet1!C" & ROW()/3+2) を入れてここをコピーし Sheet2でCTRLを押しつつ、c列の6,9,12行・・をクリックし貼り付けないとならない。この操作(c3.C6以下の選択)を一発で出来る操作は無いのではないかな。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

こんばんは! すでに色々回答は出ていますが・・・ 他の方法の一例です。 SheetBのC3セルに =IF(MOD(ROW(),3)=0,INDEX(SheetA!C:C,INT(ROW()/3+2)),"") としてオートフィルで下へコピーします。 これで2行おきにSheetAのC3セル・C4セル・・・と表示されると思います。 尚、エラー処理はしていません。 以上、参考になれば幸いです。m(__)m

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.5

方法はいくつかあるけど 方法1 SheetB!C3=INDIRECT("SheetA!C"&ROW()/3+2) としてSheetBのC3:C5を選択した状態で下方にドラッグコピー 方法2 SheetB!C3=OFFSET(SheetA!$C$2,ROW()/3,0) としてSheetBのC3:C5を選択した状態で下方にドラッグコピー 方法3 SheetB!C3=INDEX(SheetA!$C:$C,ROW()/3+2,1) としてSheetBのC3:C5を選択した状態で下方にドラッグコピー

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.4

下記のような操作を試してください。 シートBのC3に、#シートA!C3 と入力 シートBのC3:C5 を選択 選択枠の右下角の■(フィルハンドル)を下方に必要範囲までドラッグ セル範囲が選択状態のまま、編集メニューの「置換」で # を = に「すべて置換」

  • kybo
  • ベストアンサー率53% (349/647)
回答No.3

C3に \=シートA!C3 C6に \=シートA!C4 といれ、、C3からC8のセルを範囲選択し、下へオートフィルします。 範囲選択された状態のまま、編集→置換→検索する文字列は「\」、置換後の文字列は空欄のまま、オプションで、セル内容が完全に一致・・・にチェックがはいっていないことを確認し、すべて置換

ban2009
質問者

お礼

kyboさん ありがとうございます! なるほど!オートフィルを使うを使うんですね。 今までコピー→ペーストしてたので、なかなか出来なかったんですね。 ありがとうございます。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

NO1です。 数式に一部あいまいな記載がありましたので訂正します。 =IF(MOD(ROW(A3),3)=0,OFFSET(シートA!$C$3,INT(ROW(A2)/3),),"")

ban2009
質問者

お礼

mu2011さん ありがとうございます! 一発で思ったとおりに出来ました! OFFSET関数を使うのですね。。 まだまだ勉強不足でした、これから勉強してみます!

関連するQ&A