重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

INDIRECT関数で他シートから数字を持ってきています。
他シートの一定の行から、関数内にある行を1行だけ下げたいです。
写真を貼りますので、わかる方、、ご教示下さい(^^)

「INDIRECT関数で他シートから数字を」の質問画像

質問者からの補足コメント

  • 写真見れますでしょうか

    「INDIRECT関数で他シートから数字を」の補足画像1
      補足日時:2018/09/26 16:54
  • 写真を再度はります

    「INDIRECT関数で他シートから数字を」の補足画像2
      補足日時:2018/09/26 18:16
  • tom04さま

    教えてくれた関数を参考に、思った通りになりました(^^)
    ありがとうございました。

    なかなか難しい関数だと実感しました。

      補足日時:2018/10/08 18:48

A 回答 (8件)

>"F3!A" −−−わたしの数式


>にしても読み取れますかね。

F3にシート名があり、F3のシート名のA列4行目以降を!という感じにすれば良いのですかね?
そうなるとF3は絶対参照にする必要があるので

=INDIRECT(F$3&"!A"&INT(ROW(A3)/3)+3)

といった数式になると思います。

"F3!A" とF3までをダブルクォーテーションでくくってしまうと
「F3!A」という文字列になってしまいますので、セル参照する場合は注意が必要です。
F3そのものはセル番地にし、文字列にするのは「!A」だけです。m(_ _)m
    • good
    • 1
この回答へのお礼

今日はそのファイルに触る機会がなかったので、明日、早速試してみます!!\(^o^)/

お礼日時:2018/10/04 22:28

続けてお邪魔します。



>NDIRECT関数で他シートのA4を引張ってくる数式があって、下へドラッグしたら、・・・

他シートとは一つのシートでよいのでしょうかね?
仮に「Sheet2」のA4セル以降を3行ずつ表示したい場合は

=INDIRECT("Sheet2!A"&INT(ROW(A3)/3)+3)
という数式を入れフィルハンドルで下へコピーしてみてください。m(_ _)m
    • good
    • 1
この回答へのお礼

実務のことを言いますと、他のシートは116シートあります・・

以前教えて頂いた

=INDIRECT("Sheet2!A"&INT(ROW(A3)/3)+3)

の、"Sheet2!A" で、

Sheet2は「契約」という名称があります。それはF3に入っています。

"Sheet2!A" −−−tom04さんの数式

"F3!A" −−−わたしの数式

にしても読み取れますかね。

お礼日時:2018/10/04 08:37

INDIRECT関数には「文字列」を指定するので、文字列を含む数式をドラッグしてもセル番地は自動的に更新されません。


 A4
 A4
 A4
 ↓
 A4
 A5
 A6
などと指定したいのであれば、INDIRECT関数内で数字の部分をROW関数で指定するようにすると良いでしょう。
ROW関数はその関数が示すセルの行番号を数字で返してきます。
例:
 =ROW(B4)
  ↓
  4
 ※この場合、列はどこを指定しても構いません。D4セルでも結果は同じということです。

従って、
 =INDIRECT(文字列 & ROW(A4))
等とすればよいでしょう。
※ 文字列の部分は自身で工夫してください。


・・・余談・・・

このINDIRECT関数の性質を使って、指定したセルが変わらないようにするという使い方ができます。
普通はシート名を変えると自動的に関数内の参照先のシート名も変わりますが、
INDIRECT関数ではシート名を「文字列」で指定している限り書き換わることはありません。
参照先のシートを差し替えることがあるようなときに使うと便利です。
    • good
    • 0

No.2・4です。



>・・・というふうにしたいと思っておまります。

Q242以降がシート名云々は考えず

=INDIRECT("Q"&ROW(A242)&"C"&INT(ROW(A3)/3)+4)

ではどうなりますか?

※ 上記数式でエラーの場合、
単にQ列データとC列データをつなぎ合わせたい!というのであれば
=INDIRECT("Q"&ROW(A242))&INDIRECT("C"&INT(ROW(A3)/3)+4)

のような感じにしてみては?m(_ _)m
    • good
    • 0
この回答へのお礼

なかなかうまくいきませんかお(*_*)

INDIRECT関数で他シートのA4を引張ってくる数式があって、下へドラッグしたら、


A4

A4 

A4

A4 

A4





となりますよね。


それを、

A4

A4

A4

A5

A5

A5

A6

A6

A6





は可能なのでしょうか?文字列となっているので、その関係のせいか、ROW関数などを勝手に読取ってもらえません・・

お礼日時:2018/09/27 01:14

No.2です。



>=INDIRELT($Q244&"c5")となっています。
>=INDIRELT($Q244&"c6")というふうに自動にしたいと思っています。

Q244セルにはシート名が入っているのですかね?
単にC5セルの一つ下!というのであれば

=INDIRECT(Q244&"!C6")
だけで済みそうですが・・・

「C5」をどうしても生かそうとすると
=OFFSET(INDIRECT(Q244&"!C5"),1,0,1)
ですかね。

フィルハンドルで下へコピーするたびに1行ずつずらしたい場合は
=OFFSET(INDIRECT(Q$244&"!C5"),ROW(A1),,1)

といった具合になると思います。m(_ _)m
    • good
    • 0
この回答へのお礼

検討して頂きありがとうございます(^^)

すみません。
=INDIRECT($Q242&"c5")
=INDIRECT($Q243&"c5")
=INDIRECT($Q244&"c5")
=INDIRECT($Q245&"c6")
=INDIRECT($Q246&"c6")
=INDIRECT($Q247&"c6")
=INDIRECT($Q248&"c7")



というふうにしたいと思っておまります。

オフセット関数、調べてみます!

お礼日時:2018/09/26 18:21

OFFSET関数についてまずはご自身で調べることを勧めます。


そのうえで分からない点を質問するようにすると理解を深めることができ、今後同様な問題を一人で解決できるようになりますよ。
    • good
    • 1

こんにちは!



画像が小さすぎて詳細が判りません。
おそらくOFFSET関数とINDIRECT関数の併用で出来そうな気がします。m(_ _)m
    • good
    • 1

>写真を貼りますので、わかる方、、ご教示下さい(^^)



(´・ω・`)
知らんがな

INDIRECT関数に渡した行の部分の数字を一つ大きくしてやれば良いだけです。
数字に部分だけを切り出して足し算してもいいし、一つ大きい数字に置き換えてもいいです。
OFFSET関数の基準セルにINDIRECT関数を当てて、OFFSET関数で下の行の値を拾うのもあり。
好きな方法で処理しましょう。
    • good
    • 1
この回答へのお礼

写真がボケますね。

数式は
=INDIRELT($Q244&"c5")となっています。

=INDIRELT($Q244&"c6")というふうに自動にしたいと思っています。


OFFSETを使った数式、書いていただけないでしょうか(*人*)

お礼日時:2018/09/26 17:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!