[[20080515133147]] 『シート名をセル入力から認識させることは可能でし』(T) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『シート名をセル入力から認識させることは可能でしょうか』(T)

下記のような実行をしたいのですが可能でしょうか。
方法がありましたら教えてください。

例)
同一ファイル(ブック)上で

1枚目のシートの名前:ABC

2枚目のシートの名前:XYZ

とします。

2枚のシートXYZのセル「C3」に

=INDEX('ABC'!$A$1:$P$21,5,4)

という形で、シートABCのD5セルの値を持ってきます。

このときに、シートの名前を別のセルから持ってきて、

実行することは可能でしょうか。

⇒イメージでは、

  XYZのセル「C1」に"ABC"と入力し、その入力したシート名と

 一緒のシートを認識し、「C3」を反映させる。

  C3のセルには、下記のようなものでできないか?

  =INDEX('C1'!$A$1:$P$21,5,4)

説明がうまくなくて申し訳ございませんが、
ご理解をいただければ、お教えいただけますでしょうか。


 INDIRECT関数を使うのが良い様に思います。
=INDEX(INDIRECT(C1&"!A1:P21"),5,4)
       C1セルの値と"!A1:P21"をくっつけた
    ABC!$A$1:$P$21 がセル番地として使用されます。

 なお、A1:P21の部分は文字列になりますので
 絶対参照の記号が不要になります。

 因みに、"'"が必要なシート名の場合は
 それも & でくっつけてください。
=INDEX(INDIRECT("'"&C1&"'!A1:P21"),5,4)

 (HANA)

HANAさん、ありがとうございました。

=INDEX(INDIRECT("'"&C1&"'!A1:P21"),5,4)

の形でうまくいきました。

特に、問題があるわけではございませんが、

気になったのでもしお分かりになりましたら、

教えてください。

シートの名前に'は入れていないのですが、

上記の式でないとうまくいきませんでした。

下記では、実行は難しいということでしょうか。

=INDEX(INDIRECT(C1&"!A1:P21"),5,4)

今後もよろしくお願いいたします。   (T)


 ん?・・・ごめんなさい、ちょっとよく分からないですが・・・
 シート間セル参照をしたときに、勝手に「'」がつくようなシートが有りますよね。

 シートの名前に「'」が使われているシート【ではなく】
 シート間参照したときに ='シート名'!A1 の様に
 勝手に「'」がつくようなシートです。

 その様なシートには、それがついた状態で参照しないと
 上手く行かない事があります。

 ご提示の式
 >=INDEX('ABC'!$A$1:$P$21,5,4)  
 の配列部分のシート名は「'ABC'」と成っていますよね。
 実際のシート名は「ABC」かと思います。
(まぁ、ABCなら「'」はつかないと思いますが・・・・。)
 INDIRECT関数で参照する際も、「'」がつくようなら
「'」がついた文字列にして下さい。

 >C1&"!A1:P21"
 で出来る文字列は「ABC!$A$1:$P$21」
 >"'"&C1&"'!A1:P21"
 で出来る文字列は「'ABC'!$A$1:$P$21」

 実際に指定するのは、数式の中の「'ABC'!$A$1:$P$21」
 ですので、その様な文字列になる後者を使って下さい。

 ・・・と言う説明で分かりますかね?

 ちなみに、この掲示板は 文頭に半角スペースを入れると
 改行出来ますよ。
 私の書き込みは
_←この部分に半角スペースを入れて有ります。

 (HANA)

 お〜よーくわかりました。
 納得しました。
 本当に説明の仕方、聞き方がへたくそで申し訳ございません。
 お手数をおかけさせてしましました。

 またよろしくお願いします。

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.