• ベストアンサー

offsetとmatchで検索抽出をしようとしましたが。。。

今行き詰ってます・・どうか知恵を貸してください! 下記のようなデータベースを作りまして、    A       B         C    →AB 1  番号      表題      試薬名 ↑ 15 865-10036-00 アセトン/水混液(9:1) アセトン 16 865-10037-00 塩化バリウム液   塩化バリウム 17 865-10038-00 塩酸,希        塩酸 18 865-10039-00 薄めた塩酸(1→10)  塩酸,希 19 865-10040-00 酢酸,0.2mol/L     酢酸 ↓ 500以上 例) 試薬名の塩酸,希の文書番号865-10038-00を表示させたい  上記のような表のデータベースがあります。別シートにvlookupで表示させた文書番号毎の表があり、その表の余白にvlookupで試薬名をだし、その試薬名と同じ名前の表題の文書番号を 表に表示したい。 OFFSET(データベース!$B$1,MATCH(L5,データベース!B:B,0),-1)        L5は余白に抽出した試薬名のセル番号 この式で文書番号は出るのですが、なぜか1つ下の番号が必ずでてしまいます。なぜだか私にはさっぱり。。。 どうか助けてください。 よろしくお願い致しますm(__)m

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

№2です。 質問文をよく読んでいなかったのですが・・ >例)試薬名の塩酸,希の文書番号865-10038-00を表示させたい  「試薬名」 は C列ですよね? ということは、試薬名「塩酸、希」の文書番号は "865-10039-00" じゃないでしょうか? それと、L5セルに入っているのは 「表題」ではなく「試薬名」で間違いないですか? ↑だとしたら、数式の MATCH関数の検査範囲は、 「データベース」シートのB列ではなく、C列にしなければなりませんが・・? つまり、ご質問通りに考えるなら数式は↓のようになると思います。 --------------------------------------------------------- =OFFSET(データベース!$B$1,MATCH(L5,データベース!C:C,0)-1,-1) --------------------------------------------------------- ◆B:B → C:C に変更 ◆MATCH関数が返した値から 1 を引く --- それと、OFFSET関数の基準セルが B1 になっているのは何か意味があるんでしょうか? これを A1 にすれば、列方向への移動は必要ありませんから、 ↓のようになります。(◆最後の -1 → 0 になる) --------------------------------------------------------- =OFFSET(データベース!$A$1,MATCH(L5,データベース!C:C,0)-1,0) --------------------------------------------------------- 結果は同じですが、一応参考まで。 ★わからないのが、現状の数式でもちゃんと文書番号が表示される、ということです。 まあ、「塩酸、希」のように B列にも C列にも存在するものなら、 文書番号が表示されはするでしょうが・・。

ranneko
質問者

お礼

ヘルプありがとうございます。 私の 例)がちょっと悪かったようです 正しくは >試薬名と同じ名前の表題の文書番号を表に表示したい なので B列でいいのですが、その他のアドバイスはもしや・・・それかも・・・ なので さっそく明日会社で確認してみます。ありがとうございます!!

ranneko
質問者

補足

昨日はありがとうございました。 今日 色々やってみたところ なにげなーくやった  <データベース!B:B、>を  <データベース!B2:B1000、>(1000は適当) に変更がビンゴ!で ちゃんと抽出できるようになりました。 なぜだかまだ よく分かってない私ですが これから 勉強してちゃんとわかるように頑張りまーす!(^o^)/

その他の回答 (2)

回答No.2

こんばんは。 数式を↓のように修正してみてください。 ------------------------------- =OFFSET(データベース!$B$1,MATCH(L5,データベース!B:B,0)-1,-1) ------------------------------- 最後のところが ,0)-1,-1) ↑OFFSET関数の行数を、MATCH関数で求めた数値から 1 を引かないとダメです。 質問のケースで説明しますと、 たとえば L5セルに "塩化バリウム液" が入っているとします。 MATCH関数が返す値は 16 です。 16 が OFFSET関数の行数になります。 B1セルを基準にして 16行下になりますから( 1 だとB2 ですよね)、 参照するのは B17の "塩酸,希" になります。 だから返ってくるのは、"塩化バリウム液" ではなく、 "塩酸,希" の文書番号になる、ということじゃないでしょうか?

  • Teariss
  • ベストアンサー率30% (3/10)
回答No.1

Excel2003のヘルプを読んだだけですが・・・ MATCHで返ってくる値が配列の中の位置(先頭だったら1)に対して、 OFFSETで指定すべき値が一つ少ない(基準のセルそのものならば0)からじゃないでしょうか。

ranneko
質問者

お礼

ヘルプありがとうございます!(^o^) なーるほど そーかもしれませんね さっそく明日会社で確認してみます。

ranneko
質問者

補足

昨日はありがとうございました。 今日 色々やってみたところ なにげなーくやった  <データベース!B:B、>を  <データベース!B2:B1000、>(1000は適当) に変更がビンゴ!で ちゃんと抽出できるようになりました。 なぜだかまだ よく分かってない私ですが これから 勉強してちゃんとわかるように頑張りまーす!(^o^)/

関連するQ&A

  • 無機化合物の選別

    塩酸 硫酸 酢酸 水酸化ナトリウム アンモニア 水酸化カルシウム 塩化ナトリウム 硫酸ナトリウム 酢酸ナトリウム 塩化バリウム 硫酸銅(II) 炭酸ナトリウム  これらの判定するのに必要に使うもの:それぞれ5mlの12種の試験管、蒸留水入りの洗浄ビン、リトマス紙 ガラス棒、ピンセット 課題:色、におい、液性、試薬相互などから、与えられた水溶液を判別する。 すいませんが効率よくできる順番も添えてお願いします><  12月4日までにわからないといけないのですがいまだにさっぱりわかっていません、どうかヨロシクお願いします。

  • 試薬を自分で作る場合に・・・

    試薬って買うと高かったり買う時に手続きが必要だったりしますよね。 そこで、試薬を作る簡易的な方法を知っていれば教えていただきたいです。作る薬品の例としては以下のとおりです。 ・塩酸(塩化水素) ・硫酸 ・硝酸 ・アンモニア ・水酸化ナトリウム ・酢酸 などです。ほかにも簡単に作れるものがあれば上記の物以外も 教えていただきたいです。よろしくお願いします。

  • ゾルゲル法でのBaTiO3合成について

     ゾルゲル法でBaTiO3を合成しようとしています。論文に従って、酢酸バリウム/酢酸溶液とTiブトキシド/アセチルアセトン溶液を混合し、ドデシルアミンと5M塩酸水溶液を加え、60℃で保管という手法で行ってみたのですが、5M塩酸水溶液を加えた瞬間に沈殿(TiO2?)が生じてしまい、さらに上澄み液を60℃で2day置いてもゲル化は見られませんでした。  この手法に何か不備はありますでしょうか?詳しい方、お手数ですが回答よろしくお願いいたします。

  • エクセル データベースからの検索について

    エクセル データベースからの検索について 商品名・商品番号・在庫といったデータベースがあります。 検索する別の場所を設けそこで商品番号をたたくと商品名と在庫が表示できるようにVLOOKUPでしました。 商品番号がわからない場合があるので商品名から検索できるようにしたいのですが 商品番号からの検索と同じ関数では「#N/A」となってしまいました。 文字での検索の場合はどのような関数になるのでしょうか?         B2商品番号入力   C2検索結果表示(商品名) D2検索結果表示(在庫数)         B3商品名入力    C3検索結果表示(商品番号)D3検索結果表示(在庫数)  A10商品番号  B10商品名     C10在庫数   :       :         : としてC2には =VLOOKUP(B2,A10:C100,2,FALSE) とし正しい結果が表示されます。 商品名から検索したいC3にも同様のものをいれましたが表示されません。 よろしくお願いします。     

  • エクセル、VBA、抽出複数検索について

    エクセル、VBA、VLOOKUP、MATCH関数等について出来る方法があれば教えてください。 インチごとに分けてあるシートがあり、(在庫表です) これを参照して、別ブックへVLOOKUP等を使って、サンプルデータのシート4のように表示させたいのですが、 何か方法を使って出来ることは可能でしょうか? 問題点が複数あります 1、VLOOKUPの範囲について、B列が結合されていて、C列は複数行あるため、商品名が入ってきません。 C列については、何千件とデータがあるため、結合することは不可能です。 一致している条件としては商品コードが必ずあり、商品名には「/」が入っております。 =CONCATENATEとVLOOKUPは一緒に使うことは可能ですか? もしくはINDEX関数やIF、SUMPRODUCT等を使うのでしょうか? シート4のような形に出来る方法があれば、教えてほしいです。 VBAは詳しくはないのですが、VBAで出来るのであれば、教えてほしいです。 在庫表はとても作り方が悪いのですが、これを作り直すと言うことは、不可能です。 グループ会社で使っているため、なんとかこの在庫表を使いたいです。 VBAでA列をA5からA100にコードのみ入れた場合、B列に商品名が入るようにVBAで作ることは可能でしょうか? もしくは、検索条件を2つ使って、一つは商品コード完全一致+あいまい検索で【/】で商品名を入れることは可能でしょうか? 関数は調べたのですが、関数では難しいのかなと思います。 宜しくお願い致します。

  • 炎色反応について

    炎色反応について 半年ぐらい前に炎色反応の実験を行いました。 使った試薬は ・塩化ナトリウム ・塩化カリウム ・塩化ストロンチウム ・塩化バリウム ・硫酸銅水 ・酢酸ナトリウム ・炭酸水素ナトリウム です。 すべて水溶液(液体の状態)でした。 この実験を行って、疑問に思ったことがあります。 1,反応が薄い 数種類を除いて、ほとんどの試薬は反応がとても薄いと感じられました。 カリウムの赤紫やストロンチウムの紅色はくっきりと見ることが出来ましたが、それ以外は見えるか見えないかぐらいです。 なぜ、このような結果になったのでしょう? 量はどれも同じくらいで行っています。 2,しばらく熱していると、違う反応が出る。 白金線の先端に試薬をつけて熱しましたが、しばらく熱していると違う色が出てきました。 その色は赤だったり緑だったり、変化します。 何回も洗浄しているので、こういう反応が出るのはすごく不思議です。 長々と申しわけありません。 回答お願いします。

  • エクセルで複数シートを検索して抽出するには

    いつも参考にさせていただいています。 過去の質問を見てもわからなかったので回答をお願いします。 顧客管理台帳を作成していますが、他のファイルの複数のシートを検索してデータの抽出をしたいのです。 顧客管理台帳というファイルのシートに顧客一覧があります。 A番号 B顧客名 C住所 D対応状況 進捗表というファイルにランクA、B、Cのシートがあります。 A番号 B顧客名 C住所 D内容 E進捗状況 AAAA  ○○××  ・・・       保留 PPPP  ××△△  ・・・       終了 シートごとに顧客名の重複はありません。 顧客名はランダムに並んでいます。 顧客管理台帳の顧客名を進捗表の各シートから検索して 対応状況に進捗状況を反映させたいのです。 進捗表の一覧を作るとVLOOKUP関数でできると思うのですが シート毎の管理をし、日々更新しているので 現状のままでできる方法はないでしょうか。 よろしくお願いいたします。

  • エクセルのデータ抽出

    エクセルの関数について質問です。 ここに商品名、入荷日、個数が入ったデータベースがあります。 別のシートで商品名に対して個数をデータベースから引っ張りたいのですが その個数を引っ張る際に、入荷日を指定してその範囲の合計を表示したいです。 (例えば1年分のデータから3/1から3/15に入荷した個数を表示) VLOOKUPを使ってやろうとしていたのですが範囲を指定することが出来ません。 (=VLOOKUP(A3,'B'!$A$1:$K$1000,8,0)) ↑これで全体の合計を出すことはできました。 どなたかご教授いただけないでしょうか。 よろしくお願いします。

  • 分析化学、早めにおねがいします!!

    分析化学の重量分析についての質問です。今重量分析の「セメント中無水硫酸の定量」という実験をしているのですがわからないところがあるので教えてください。まず、ポルトランドセメントと水、塩酸を混ぜます。よく混ぜたあと50mlになるように温水を加え、10分間加熱します。そのあと5種Bの、ろ紙でろ過して数回温水で洗浄する。そのあとろ液に水を加えて200mlとして加熱し、塩化バリウム溶液(10%)10mlを一滴ずつ加熱試料溶液中に混ぜる、という実験です。そこで質問です。 (1)なぜ温水で洗浄するのか。 (2)なぜ塩化バリウムのような酸を使うのか。 (3)5種Bの、ろ紙とはどんなものか。 (4)塩化バリウムを一滴ずつ加えていく理由は? この四点です。本などで調べたのですがどうもうまい答えが見つかりませんでした。どれかひとつだけでもおわかりになるかたがいらっしゃったら教えてください。お願いします。

  • 【エクセル】他のBookの、シート名を抽出したい

    ブックA,Bがあって、 ブックAのSheet1に「商品名、シリアル番号、商品サイズ・・・」とい ったような項目の表があります。また、Sheet1の表を基にして、数値の 違う表がSheet30まであります。 ブックBのSheet1のA列にはブックAのデータに対応するシリアル番号が ずらっと並べてあります(抜けてたり、多かったりするかもしれません)。 そこで、隣のB列に、A列に書いてあるシリアル番号をブックAから参照 (検索?)して、同じシリアル番号が入力されたセルのあるシートの、 シート名を表示したいです。おねがいします。 VLOOKUPで対応するシリアル番号のセルを探し出して、そのシートを表 示させるようなことを考えていたのだけど、参照するデータの列が左端 ではないし、検索するシートがたくさんあるし、ぜんぜんわかりませ ん。マクロを使用すれば出来るのでしょうか? エクセル2003を使用しています。 長文になってしまい、わかりにくいかと思いますが回答お願いします。

専門家に質問してみよう