[[20160120102248]] 『複数あるシートの中から条件にあったデーターを検』(素人) ページの最後に飛ぶ

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

 

『複数あるシートの中から条件にあったデーターを検索したい』(素人)

 出発先から到着先までの距離と時間、高速代を検索シートに表示させたいのですが分からないので宜しくお願いします。
 シートですが、検索シート、データーの入ったシートが60枚位あります。
 検索シート

   A   B     C      D      E       F
 1
 2
 3
 4   出発 到着  距離  時間  高速
 5    990  010     50     50     2000   

 データーのシート990

     A    B    C       D      E    F     G     H
 1
 2
 3       発           着  距離  時間  高速
 4       
 5       990              010    50    50    2000
 6       990                     020      40      40     1000
 7       990                     030      30      30
 8       010                     990      50      50     2000
 9

  データーのシート010 
     A    B    C       D      E    F     G     H
 1
 2
 3       発           着  距離  時間  高速
 4       
 5       010              020    10      10
 6     010                     030      40      40     1000
 7       010                     040      30      30     2000
 8       020                     010      10      10
 9

 (このようなシートが60枚位あります。)
 行先が60件位あるので出発先と到着先のパターンを作ってあります。

 B5に出発先C5に到着先を入れると複数あるシートから条件にあった結果をD5に距離 E5に時間 F5に高速を表示させたいのでどうぞ宜しくお願いします。

< 使用 Excel:unknown、使用 OS:unknown >


D5:F5 =VLOOKUP($C5,INDIRECT($B5&"!E5:H999"),COLUMN()-2,FALSE)
(???) 2016/01/20(水) 11:24

 (???)さん
 お世話になります。
 #N/Aのエラーになります。
(素人) 2016/01/20(水) 11:48

どういう条件の場合にエラーでしょう?

気になるのは、010のように、数値化すると2桁になる場合。
セルが文字列指定されているならば,シート名も"010"で良いですが、標準とか数値ならば前ゼロが取れてしまい、一致しなくなります。
(???) 2016/01/20(水) 11:58


 お世話になります。

 数字に関しては、文字列にしています。
(素人) 2016/01/20(水) 12:05

 すみません。

     A    B    C       D      E    F     G     H
 1
 2
 3       発       着           距離  時間  高速
 4       
 5       990          010           50    50    2000
 6       990             020             40      40     1000
 7       990             030             30      30
 8       010             990             50      50     2000

 着の入る列の位置がずれてましたD5とE5が関係ありますか?
(素人) 2016/01/20(水) 12:14

列が変われば式は違うのが当然なわけで…。
=VLOOKUP($C5,INDIRECT($B5&"!D5:H999"),COLUMN()-1,FALSE)

これでもN/Aになるようならば、データシートのD列と入力したC列の不一致と思います。
(???) 2016/01/20(水) 13:02


 有難うございます出来ました。

 出来たのですが、どのように解釈してよいかわかりません。出来たら説明をお願い出来ますか?
 素人なものですみません。

 =VLOOKUP($C5,INDIRECT($B5&"!D5:H999"),COLUMN()-1,FALSE) 

(素人) 2016/01/20(水) 15:01


まず、INDIRECT($B5&"!D5:H999") の部分ですが、B5セルには990等、出発の値を入力しますよね。
で、この値がそのまま別のシート名になっていて、そこに990が関係するデータが格納されている、と。
つまり、B5セルに入力された文字列を、シート名に使えば良いわけです。
こういう場合に、INDIRECT関数を使うと、セルの内容をセル参照する文字列に置き換える事ができるのです。
INDIRECT($B5&"!D5:H999") → 990!D5:H999、という、990シート内を示す範囲指定になるのですね。
なお、着データで検索したいので、範囲指定では着の列、D列が一番左になるよう指定します。

VLOOKUPは、縦に並んだ表から、一致するものを得る関数です。着の情報に一致するものを探すので、C5セルの値を指定します。
探す範囲は、上で指定した990!D5:H999ですね。D列の中で、C5と同じものを探します。

COLUMN()は、セルの列位置を得られます。距離ならばD5セルなので、4ですね。
検索対象は、例えば距離ならF列に情報がありますが、範囲指定でD列が先頭になっているので、F列は3番目になります。
D列には990のF列をセットしたいので、4-1 = 3番目と指定しています。こうしておくと、続く時間・高速でも、同じ式が使えます。
(5-1 = 4番目、6-1 = 5番目)

範囲指定と何番目かの関係は、以下。

着       距離  時間  高速
D    E    F    G    H
1    2    3    4    5

VLOOKUP関数については、ヘルプを読んでみてください。
(???) 2016/01/20(水) 16:09


 大変お世話になりました。
 有難うございました。
(素人) 2016/01/20(水) 16:43

 すみません。
 横ではよかったのですが、縦にする場合が分かりません。

    I   J    K     L    M    N

 5               
 6             時間    距離  高速代
 7      990
 8      010   50        50      2000 
 9      020   20        20      1000
 10     030   10        10   
 11
 12
 13
 と続きます。

 この様な時にJ7とJ8の時間をK8に距離をL8に高速代をM8に、そのあともJ8とJ9の時間、距離、高速代と縦に検索したいのですが分かりません。 どうか、宜しくお願いします。

(素人) 2016/01/29(金) 18:44


参照元が変わるのと、出力先の列が前よりずれているので、そこを変えるだけですよ?
このくらいは時間をかけてでも自力解決して頂かないと。 私は貴方の雑用係ではありませんから。
あと、時間と距離が元データと逆になっていますが、本当に? それだと3列ばらばらになるので、COLUMNを使わない方が良いのですが?

=VLOOKUP($J8,INDIRECT($J7&"!D5:H999"),COLUMN()-8,FALSE)
(???) 2016/02/01(月) 13:05


 (???)さん 大変申し訳ございません。
 何とか出来ていたのですが返信を忘れてしまいました。申し訳ありませんでした。

(素人) 2016/02/02(火) 18:38


コメント返信:

[ 一覧(最新更新順) ]


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