[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シートの一覧表を作るには』(ジュニア)
関数の意味が分かってないのですがコピーして
以下のようにやりました。
挿入 ↓ 名前 ↓ 定義
で 名前を shtname 参照範囲を =GET.WORKBOOK(1)&T(NOW())
シート一覧を表示したいシートのセルに =MID(INDEX(shtname,ROW()),FIND("]",INDEX(shtname,ROW()))+1,31)
A列にシート名を抽出 ←これは出来ました。
続いてB列に各シートのB7を抽出したく
=INDIRECT(MID(INDEX(shtname,ROW()),FIND("]",INDEX(shtname,ROW()))+1,31)&"!B7")
と入れましたが、#REF! で何も出てきません。
ちなみにB7はBCD列を結合したセルになっています。
結合外してみても何も出てきません。セルには文章が入っています。
スミマセン、教えて下さい!
こちらですね? [[20050905144450]] 『シートの一覧表を作るには』(FAS) ちなみに、 =INDIRECT(MID(INDEX(shtname,ROW()),FIND("]",INDEX(shtname,ROW()))+1,31)&"!B7") こちらは、どのセル番地に入れましたか? 仮に、Sheet1 の B7 を反映させたければ、B1 に入力する必要があります。 こちらを、B1 以外に入力しているのなら、関数を少し変更して ROW() → ROW(A1) 2箇所 としてみるのはいかがでしょう? (キリキ)(〃⌒o⌒)b
ちなみに
「リスト」というシートをブック一番左に
その右隣に順に「1組」「2組」、、、、「100組」という名でシートが続いています。
「リスト」と「1組」の間に新しいシートを挿入して「1組」の内容をコピーペースト
したら、リストにその新しいシートのb7が抽出できました。
相変わらず「1組」以降のデータは抽出できません。
何故か分からず、、、
どうしてだかわかりませんが、、、 >関数の意味が分かってないのですがコピーして以下のようにやりました。 との事なので、計算式を分解してみましょ〜b =INDIRECT(MID(INDEX(shtname,ROW()),FIND("]",INDEX(shtname,ROW()))+1,31)&"!B7") ~~~~~~~ 計算する順番どおりに紐解いてみましょう! 1.shtname これは「shtname」という名前を登録した、=GET.WORKBOOK(1)&T(NOW())を計算しています。 こちらの関数は、特殊ですので省いちゃいますw 何が返ってくるかというと、「[ブック名]シート名」が返ってきます。 例えば、Book1 という名前のブックで、Sheet1〜Sheet3 まであるファイルだとすると 「{"[Book1]Sheet1","[Book1]Sheet2","[Book1]Sheet3"}」というものが返ります。 これで、こうなります。 =INDIRECT(MID(INDEX({"[Book1]Sheet1","[Book1]Sheet2","[Book1]Sheet3"},ROW()),FIND("]",INDEX(shtname,ROW()))+1,31)&"!B7") ~~~~~~ 2.ROW() こちらは、関数が入力してある行番号が返ります。 B1 に入力であれば「1」 =INDIRECT(MID(INDEX({"[Book1]Sheet1","[Book1]Sheet2","[Book1]Sheet3"},{1}),FIND("]",INDEX(shtname,ROW()))+1,31)&"!B7") ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3.INDEX関数 INDEX(配列,行番号,列番号) 配列は、shtname 出だした、シート名。行番号は、ROW関数で出した、行番号。列番号は省略しています。 上の計算式で考えると、 {"[Book1]Sheet1","[Book1]Sheet2","[Book1]Sheet3"} の中で、左から {1} 番目を返します。 今回の場合は、"[Book1]Sheet1" が返ります。 =INDIRECT(MID("[Book1]Sheet1",FIND("]",INDEX(shtname,ROW()))+1,31)&"!B7") ~~~~~~~~~~~~~~~~~~~~ 4.コレは、上とまったく同じですね? よって返ってくるものは、"[Book1]Sheet1" ですね? =INDIRECT(MID("[Book1]Sheet1",FIND("]","[Book1]Sheet1")+1,31)&"!B7") ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5.FIND関数 FIND(検索文字列,対象,開始位置) 検索文字列、"]"。対象、"[Book1]Sheet1"。開始位置は、省略のため先頭より。 今回の場合で言えば、「7」が返ってきます。 それに「+1」をしていますので、「8」が返ります。 =INDIRECT(MID("[Book1]Sheet1",8,31)&"!B7") ~~~~~~~~~~~~~~~~~~~~~~~~~ 6.MID関数 MID(文字列,開始位置,文字数) 文字列は、"[Book1]Sheet1"。開始位置は「8」。文字数は、「31」。 ここでの、「31」とは、シート名の最大入力可能数量は「半角で31文字」だからです。 31以上であれば、いくつでもOK。 よって、ここで返ってくるものは、"Sheet1" になります。 =INDIRECT("Sheet1"&"!B7") ~~~~~~~~~~~~~~~~~~~~~~~~ 7.INDIRECT関数 INDIRECT(参照文字列,参照形式) INDIRECT関数は、参照文字列を間接的にセルの指定を行うことが出来ます。 上記は、「&」で文字をくっつけていますので、 "Sheet1!B7" を返します。 それを、INDIRECT関数で間接的にセルを指定しているわけです。 よって、Sheet1 に入っている、B7 のセル内容を返すわけです。 話を整理しますと、、、 ROW関数の数字次第で、ブックに入っているシートの「左から何番目」を操作することが出来るわけです。 こちらを踏まえたうえで、もう一度考えてみるとどうなりますでしょうか? (キリキ)(〃⌒o⌒)b
まだしっかり見てませんが、キリキさんありがとう御座います。
今から会議で席を外します。後ほどゆっくり勉強してみます。
有難う御座います!!また書き込みします!!
=INDIRECT("'" & A3 & "'!b7")
こういれたら大丈夫ということだけ分かったのですが、
式の意味が分からず教えてもらえませんでしょうか?
(&って何? ” ’って何 !って何?)
途中からですが,目的を達成するだけならば, ブック内のシート一覧を同一ブックのA列に 作るだけのマクロですが。(夕焼) マクロを実行すれば一覧が出来上がります。
Sub シート名一覧()
wc = Worksheets.Count For i = 1 To wc
Cells(i, 1) = Worksheets(i).Name ' 1はA列 数値を変えれば別の列に出来ます。 Next
End Sub
>式の意味が分からず教えてもらえませんでしょうか?(&って何? ” ’って何 !って何?) 「&」 ・CONCATENATE関数のヘルプ ・[[20060705141758]]『A1のセルの文字とB1のセルの文字を統合したいです』(SO1) 「’」 ・[[20060814154532]]『空白文字を含んだシート名の参照方法』(もんた) 「!」 ・[[20040919210614]]『関数で・・』(マルコメ味噌) (キリキ)(〃⌒o⌒)b
!は分かりました。
&は結合するんですよね。2つあるんですが何と結合しているんでしょうか?
また、この場合ダブルコーテーション シングルコーテーション がどういう意味を
もっているのでしょうか?
「’」は、上の通りです。 sinさんのコメントを見てください。 エクセル君は「”」で、挟んだものを【文字列】として考えてくれます。 >2つあるんですが何と結合しているんでしょうか? 下記の関数で考えれば、、、 =INDIRECT("'" & A3 & "'!b7") ~~1 ~~2 ~~~~3 1 と言う文字列と 2 に入っているものと 3 と言う文字列をくっ付けています。 (キリキ)(〃⌒o⌒)b
=INDIRECT("'" & A3 & "'!b7")
~~1 ~~2 ~~~~3 1 と言う文字列と ⇔ "にはさまれている ' はいったいどういう意味ですか? 3 と言う文字列をくっ付けています。⇔'が!の前に位置しているのはどういう意味ですか?
sinさんのコメントの通りのシート名を作成して、 sinさんのコメントの通りに作業してみてください。 (キリキ)(〃⌒o⌒)b
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.