プロが教える店舗&オフィスのセキュリティ対策術

VLOOKUPとHLOOKUP関数などを使用した表からのデータ抽出に関して質問があります。

表に関しては添付ファイルを参照して下さい。

内容や条件に関してですが、

(1)セルG61には別シートの内容が自動的に入ります。
(2)セルG62、G63も同様です。
(3)セルG65~J65にはG61、G62、G63の条件に合致し、かつ各時刻(9時、12時、14時、16時)ごとの
数値をデータ表より各セルの表示させます。

例としまして、
セルG61は「福岡」、セルG62は「N」、セルG63は「I」となった場合、

G65=7 H65=10 I65=10 J65=9

になります。

このようなものですが、(3)で数値を表より抽出し、各セルに表示させる数式がわかりません。

なお、データ表に関してですが、
・「地域」は全部で6地区あります。
・「方位」は全部で8方向あります。(東西南北、北東、北西、南東、南西)
・「壁タイプ」は全部で4つあります。
というようになっています。

自分でなんとか作ってみようとしたところ、かなり長い数式になり、途中で何がなんだか分らなくなってしまいました。

どうか御回答頂ければ助かります。
宜しくお願い致します。

「EXCEL 表からの文字抽出に関して」の質問画像

A 回答 (4件)

No1です。

微妙に変えてみた。わかりよいほうをどうぞ
壁タイプは I,C,D,Fとしてある。
G65セルに
=IF(COUNTA($G$61:$G$63)<>3,"",
INDEX((壁I,壁C,壁D,壁F),
MATCH($G$61,$C$47:$C$58,0)-1+COUNTA($G64:G64),
MATCH($G$62,$F$46:$M$46,0),
MATCH($G$63,{"I","C","D","F"},0)))
右へオートフィル
「EXCEL 表からの文字抽出に関して」の回答画像2
    • good
    • 0
この回答へのお礼

お礼が遅れましたが、素早い御回答ありがとうございます。

今まで表からの抽出はVLOOKUPとHLOOKUPしか使っていなかった為、INDEXとMATCH関数を併せた使い方があるとは知りませんでした。

2つ回答を頂きましたが、こちらの数式の方が分りやすかった為、こちらにお礼を付けさせて頂きます。

本当にありがとうございました。

お礼日時:2013/04/30 09:50

こんにちは!



・「地域」は全部で6地区あります。
・「方位」は全部で8方向あります。(東西南北、北東、北西、南東、南西)
・「壁タイプ」は全部で4つあります。

とありますので、
(1)画像では地域が3地域だけですが、以下同様に3地域が表の下に続いている
(2)列方向に1地域4行・8列の表が続いている
(3)「壁タイプ」の「I」はF45セル・「II」はN45セル・「III」はV45セル・・・と規則的に入っている前提です。

画像のG65セルに
=IF(COUNTBLANK($G$61:$G$63),"",INDEX(OFFSET($E$46,MATCH($G$61,$B$47:$B$58,0),MATCH($G$63,$F$45:$AD$45,0),4,8),COLUMN(A1),MATCH($G$62,$F$46:$M$46,0)))

という数式を入れJ65セルまでオートフィルでコピーではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

御回答ありがとうございます。
お礼が遅くなり申訳ありません。

空白セルの検索用の数式「COUNTBANK」というものがあるのですね 今までは「=IF(セル番号="","",~~)」というものしか使っていた無かった為、勉強になりました。

エクセルはまだ使い始めたばかりの素人なので、また質問をさせて頂く際は、宜しくお願い致します。

ありがとうございました。

お礼日時:2013/04/30 09:51

32行目の例えば壁タイプIなどの入力は壁タイプI、壁タイプIIのように入力されているとします。


また、方位は8方向で、壁タイプは4つあるとします。
G65セルには次の式を入力してJ65セルまで横にドラッグコピーします。

=IF(COUNTIF($G$61:$G$63,"*?")<>3,"",INDEX($F$35:$AX$58,MATCH($G$61,$B$35:$B$58,0)+COLUMN(A1)-1,MATCH($F$63&$G$63,$F$32:$AX$32,0)+MATCH($G$62,$F$34:$M$34,0)-1))

F63の壁タイプの文字は必ず入力されているものとします。
    • good
    • 0
この回答へのお礼

御回答ありがとうございます。

他の方とは違い、COLUMN関数を用いる方法があるのですね。
こちらも使ったことがなかったため、勉強になりました。

また他にも質問させていただくことがあるとはありますが、そのときはまたお助け頂ければ幸いです。

ありがとうございました。

お礼日時:2013/04/30 09:51

それぞれの壁タイプの表はすべて同じ形(地域・時刻・方位)として



[Ctrl]+[F3]名前の定義
名前 : 壁I
参照範囲 : =$F$47:$M$58
ほかの3つも同様

G65セルに
=IF(COUNTA($G$61:$G$63)<>3,"",INDEX(CHOOSE(MATCH($G$63,{"I","C","D","F"},0),壁I,壁C,壁D,壁F),
MATCH($G$61,$C$47:$C$58,0)-1+COUNTA($G64:G64),MATCH($G$62,$F$46:$M$46,0)))
右へオートフィル
「EXCEL 表からの文字抽出に関して」の回答画像1
    • good
    • 0

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