- ベストアンサー
【エクセル・関数】二つの文字列を検索キーとした検索結果を表示させたいです
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (4)
- okormazd
- ベストアンサー率50% (1224/2412)
- imogasi
- ベストアンサー率27% (4737/17069)
このコーナーの画像はぼやけることが多く、良く見えないよ。 この程度の課題なら文章で書けるだろう。 第1ステップで、番号列(A列)を123、456・・などで検索すし存在する行を知る。 第2におなりのB列が"出"なので、日別データ部分で上記第1ステップの列で、"出"を探す。 見つかったセルの列の表の第1行(この場合はシートの第3行)を求める。 ーー (123などと、出などの検索に)MATCH関数2回とINDEX関数を使う。ただし検索範囲として行を絞る必要があるためOFFSET関数も使う ーー、 例データ 第2行目から A-I列のデータ ーは本当は空白セル - 1 2 3 4 5 6 7 8 以右列省略 123 - - - - - 出 456 - - - - - - ● 567 - X 789 - - - △ (注) 表が長くなるのでI列より右は省略 第2行以下が上記(10行までと仮定) 日付は簡単のため1,2,3として居るが2009/9/1,2009/9/2・・ を入れて、書式をdなどに設定しても下記式は変わらない。 出、●・・などは表を小さくするため、質問と出現位置を変えている。 ーーー A13以下 A列 B列 C列(本当は日付) 123 出 6 456 ● 7 789 △ 4 567 X 2 ーーー C13の式は =INDEX($B$2:$Z$2,1,MATCH(B13,OFFSET($B$3,MATCH(A13,$A$3:$A$10,0)-1,0,1,31),0)) OFFSET関数で出や●などを調べる行を捉えている。 本当は、第2行を日付にしたら、C列13以下は日付の書式を設定する。
お礼
ありがとうございます!! おかげさまで解決できました。 ありがとうございました。
- cistronezk
- ベストアンサー率38% (120/309)
回答2です。 回答1の方の式を見て、自分の勘違いに気付きました。 番号と記号の結合なんぞ不要でした。 回答2は撤回します。 失礼しました。
- cistronezk
- ベストアンサー率38% (120/309)
C13以下にオートフィルしてください。 =DATE(2009,8,MATCH(A13&B13,INDEX($A$5:$A$6&$B$5:$AF$6,MATCH(A13,$A$5:$A$6,0),0),0)) 日付は連続した数字で抜けがないとの前提です。 月の情報をどこから取得すればよいのか不明なので、直に指定しています。 書式で「m/d」形式にしてください。 エラー処理はしていません。 内容は、 ・番号と記号を結合した表(複数の配列)をつくる 式:「$A$5:$A$6&$B$5:$AF$6」の部分 ・結合表の中で、検索番号に対応する行(配列)を取得 式:INDEX($A$5:$A$6&$B$5:$AF$6,MATCH(A13,$A$5:$A$6,0),0),0)) ・その行の中でA13とB13の結合「1234出」が何番目にあるかを検索 式:MATCH(A13&B13,INDEX($A$5:$A$6&$B$5:$AF$6,MATCH(A13,$A$5:$A$6,0),0),0) ・見つけた位置=日付(連続している前提なので)となるので、DATE関数で日付を作成 です。F9で各引数を確認してください。 もしそれでも理解できない場合は、使用するにはまだ早いと思うので参考程度にとどめてください。
お礼
回答ありがとうございます!! 私にはレベルが高すぎて理解できませんでしたが、 いつか分かるように勉強したいと思います。 ご好意、大変感謝いたします。 また他の質問をさせていただいた時は、よろしくお願いいたします。
お礼
ありがとうございます!! index関数で列を省略する方法を初めて知りました。 やりたいことも実現できて、勉強にもなりました。 ありがとうございました。