[[20050914135345]] 『シートにジャンプ』(ぼびば) ページの最後に飛ぶ

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

 

『シートにジャンプ』(ぼびば)
 成績管理ブック全体入力シートにおいて、G2に入力してEnterを押すと
 C2に入力した値と同じ名前のシートの最後の行にジャンプする
 ということはできますか?

 聞きかじりで
 =HYPERLINK("[成績管理]C2!A1",C2)

 と入れてみましたが、できませんでした。

 G2セルに「挿入」→「ハイパーリンク」で「C2に入力した値と同じ名前のシートの最後の行」を指定すれば、ジャンプします。
 (wisemac21)

 ありがとうございます。
 挑戦して見ましたが
 全くの初心者なもので、
  「C2に入力した値と同じ名前のシートの最後の行」を指定
 する方法が分かりません。
    このドキュメント内  というところを開けて何かを入れればよいのでしょうか?
 初歩的で申し訳ありません。
 (ぼびば)

 横から失礼します。
 このようなことでしょうか?

 =HYPERLINK("[成績管理]C2!A1",C2)
                      ↓                      
 =HYPERLINK("[成績管理]"&C2&"!A1",C2)

 C2は、セル参照させるために、
 文字列(「"」[ダブルクォーテーション]で前後を囲まれた状態)
 から切り離し、独立させた状態で、他の文字列と連結する必要があります。
 (てんねん)

 ありがとうございます!
 使わせていただいたのですが、

       指定されたファイルを開くことができません

 と出てしまいました。
 C2データと同じ名前のシート(同じファイル内)にジャンプしたいだけなのですが。。。
 あと何かする必要がある処理はありますでしょうか。
 (ぼびば)

 ちゃんと確認せずにすみません。
 ファイルを保存していない状態で確認すると上記式で動作OKだったのですが
 ファイルを保存した状態で確認すると当方も同じエラーメッセージが表示されてしまいました。
 どうやら
  ・ルートをきちんと書いていない。
  ・エクセルファイルの拡張子をつけていない。
 ことが原因のようです。

 =HYPERLINK("[成績管理]"&C2&"!A1",C2)
                      ↓                      
 =HYPERLINK("[ルートコピー\成績管理.xls]"&C2&"!A1",C2)
 ※「ルートコピー」のところは、当該ファイルの上で右クリック>>[プロパティ]
    >>[全般]タブの[場所]の部分(Ex.「C:\・・・」)をコピーして貼り付けてください。
   また、「ルートコピー」を貼り付けたすぐ後ろ(ファイル名の前)は
   上記のとおり忘れずに「\」マークをつけて下さい。

 で再度お試しください。
 お手数をおかけしてすみませんでした。<(_ _)>
 (てんねん)

 (再)
 調べたら、同じブック内であればシート名の前に「#」をつければよいそうです。

 =HYPERLINK("#"&C2&"!A1",C2)

 これだけでよかったです。
 (てんねん)

 何度もお手数かけて申し訳ありません!
 ありがとうございました!
 できました!
 あと、ずうずうしいですが
 データの最後の行までジャンプしたいとき
 上の式の A1 を

 .Range("A65000").End(xlUp).Row

 にしてもだめなんですね。
 もし可能ならおしえていただけないでしょうか
 (ぼびば)

 ジャンプするA列のデータが数値データの場合のみに限られますが、

 =HYPERLINK("#"&C2&"!A1",C2)
                     ↓
 =HYPERLINK("#"&C2&"!"&IF(ISNA(MATCH(10^17,INDIRECT("'"&C2&"'!A:A"))),"A1"
 ,ADDRESS(MATCH(10^17,INDIRECT("'"&C2&"'!A:A")),1)),C2)

 で、C2に入力されているシート名のA列の最末行にジャンプします。

 「A列の最後の行」を表しているのが、下の式になります。

 IF(ISNA(MATCH(10^17,INDIRECT("'"&C2&"'!A:A"))),       ・・・(1)条件
    "A1",                                              ・・・(2)真の場合
    ADDRESS(MATCH(10^17,INDIRECT("'"&C2&"'!A:A")),1))  ・・・(3)偽の場合

 (1)条件
      「MATCH(10^17,INDIRECT("'"&C2&"'!A:A"))」というのは、
      「C2に入力されているシート名のA列の最末行は何行目にあたるか」を数値で表したものです。
      この式は、A列に1件もデータがない場合、エラー値「#N/A」を返します。
      つまり「ISNA(MATCH(10^17,INDIRECT("'"&C2&"'!A:A")))」は、
      「A列に1件もデータがない場合」という意味です。

 (2)真の場合(条件に当てはまる場合)
     「A列に1件もデータがない場合」、「A1」という答えを返します。

 (3)偽の場合(条件に当てはまらない場合)
     「ADDRESS(MATCH(10^17,INDIRECT("'"&C2&"'!A:A")),1)」ですが、
     「ADDRESS(行番号,列番号)」でセル番地を表します。今回は、
     「ADDRESS([C2に入力されているシート名のA列の最末行は何行目],1)」
      ということを表しています。列番号が「1」というのは、左から1番目の列番号。
      すなわち「A」列の最末行を表します。

 すみません。眠くて頭が働かなくなりました。
 文章おかしいかもです。寝ます。おやすみなさい。(+_+)
 (てんねん)


 =HYPERLINK("#"&C2&"!A"&MAX((INDIRECT(C2&"!A1:A65535")<>"")*
 ROW(INDIRECT(C2&"!A1:A65535"))))
 でA列最終行にジャンプできると思います。

 シート最終行が必要ですか?

                      kym (^o^)_v 

 kymさん、フォローありがとうございます!
 kymさんの式ですと、データが数値・文字に限らず最終行にジャンプできますね。
 ちょっと補足。(^^ゞ
 kymさんの式は配列数式なので、式入力後は[Enter]で確定ではなく、
 [Shift]+[Ctrl]+[Enter]で確定します。

 もし、「C2に入力されているシート名のA列に1行も入力されていない場合」があるのでしたら、
 =HYPERLINK("#"&C2&"!A"&IF(MAX((INDIRECT(C2&"!A1:A65535")<>"")*
 ROW(INDIRECT(C2&"!A1:A65535")))=0,1,MAX((INDIRECT(C2&"!A1:A65535")<>"")*
 ROW(INDIRECT(C2&"!A1:A65535")))))
 と入力して、[Shift]+[Ctrl]+[Enter]で確定でしょうか?
 配列数式は、ちゃんと学習していないので説明は省かせてください。m(__)m

 私の式は、今日改めて見たらぜい肉がたくさんついていました。
 kymさんの式のようにA列というのは予め文字列で指定するとして、

 =HYPERLINK("#"&C2&"!A"&IF(ISNA(MATCH(10^17,INDIRECT(C2&"!A:A")))
 ,1,MATCH(10^17,INDIRECT(C2&"!A:A"))),C2)

 でよいですね。(とか言いながら、まだぜい肉ついてるかもしれません・・・)

 シート名(上記式だとセルC2)を「'」(シングルクォーテーション)で囲む場合がありますが、
 これは、例えばシート名に「!」が使われていたりすると、
 シート名とセル参照の区切りがわからなくなるのできちんと区別するためです。
 必要だということであれば、シート名を「'」で囲んでください。

  =HYPERLINK("#"&C2&"!A"&IF(ISNA(MATCH(10^17,INDIRECT(C2&"!A:A")))
 ,1,MATCH(10^17,INDIRECT(C2&"!A:A"))),C2)
                        ↓
 =HYPERLINK("#'"&C2&"'!A"&IF(ISNA(MATCH(10^17,INDIRECT("'"&C2&"'!A:A")))
 ,1,MATCH(10^17,INDIRECT("'"&C2&"'!A:A"))),C2)
 (てんねん)

 みなさん、ありがとうございます。
 ホントに勉強になります。
 質問させていただいたこのファイルの 全体入力シートC2セルには
 ほとんど文字しか入りません。
 また、ジャンプ先のシートのA列にもほとんど文字が入ります。
 今まで、教えていただいた式を試したのですが、
 シートへのジャンプは問題ありませんが、
 全てA1へ行ってしまいます。
 できなくては作業ができない訳ではないのですが、
 せっかく教えていただいたので実現したいです。
 色々分解して、解説見たり勉強してみたのですが、みなさんが使われてる
 INDIRECT
 が初心者にはよく分かりません。
 もう一度ご教授いただけないでしょうか。
 (ぼびば)

 kymさんの式を試されましたか? 
 (てんねん)さんが補足されているように、式を入力したあとCtrl+Shift+Enterで確定すると、
文字でも数字でも最終行にジャンプしますよ^^ (←やってみました♪)

 INDIRECTは… エクセルのヘルプや、ここ「エクセルの学校」の新・単語検索で検索されると、
色々な事例がでてきますので参考になるかも…
 ヘルプ以上のことを語れない^^;(かなれっと) 

 かなれっとさん
 ありがとうございます!
 Ctrl + Shift + Enter をいつするのか意味分かってませんでした・・・(^^;)
 無事したいことができました
 (ぼびば)

 衝突しました☆

  INDIRECT関数について・・・

 EXCELヘルプの使用例より、

   セル A1 に "B2" という文字列が入力され、
   セル B2 に 1.333 という数値が入力されている場合は下のようになります。

   INDIRECT($A$1) = 1.333

 ということは
 INDIRECT($A$1) = INDIRECT("B2") = B2 = 1.333

 つまり、文字列データになっているセル番地を
 データ形式を変換して、式の引数(セル参照)として使用できる様にする関数
 と思っていただければよいと思います。
                                  (いいのかな?)
 (てんねん)

 さっそくのお返事ありがとうございます!
 ヘルプを見てもよく意味がわからなかったのですが、
 てんねんさんのお話読むとなんとなく分かってきました。
 色々使って試して見ます。
 (ぼびば)

 かなれっとさん、フォローありがとうございますm(__)m

 ただ私の2000の環境では「Ctrl + Shift + Enter で確定」をしなくても
 ただEnterでハイパーリンクが正しく埋め込まれるのです。
 原因はわかりかねますが(^^ゞ

                            kym (^o^)_v 

 いえいえ^^; 私は(てんねん)さんが書き込まれたことを繰り返しただけでして…  
 私が式を入力したとき、はじめEnterで確定してしまって、リンク先シートの最初の行に
飛んだので、(ぼびば)さんももしかしたら〜?と思ったもので。。。
 ちなみに私は2000(職場)と2003(家)ですが、どちらもCtrl+Shift+Enterで配列式確定に
なりました。何か設定があるのかもしれませんね〜(かなれっと)

コメント返信:

[ 一覧(最新更新順) ]


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