• ベストアンサー

Excelにおけるシート間の比較について

いつもお世話になっております。 Excel2003の関数(もしくはマクロ?)についての質問です。 シート1に No|管理|項目 01|5000|りんご 02|3000|みかん 03|1000|いちご とあります。 シート2に No|管理| 03|____| 01|____| (____分は未入力セル) とあった場合、未入力セルになんらかの関数を入力して No|管理| 03|1000| 01|5000| と表示させたいのです。 Noの比較まではできるのですが、それがイコールだった場合 管理の番号を入力する、というところでどんな関数を使用すれば 良いのか検討がつかなかったので質問させていただいております。 できるだけ関数でできるとありがたく、識者の方のご教授のほどよろしくお願いいたします。

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

  • ベストアンサー
  • nanasupra
  • ベストアンサー率33% (45/136)
回答No.1

A1セルから順に記載しているとすると シート2のB2セルに =VLOOKUP(A2,Sheet1!A2:C4,2,FALSE) を入力するとできますよ。

michbird
質問者

お礼

早速のご回答ありがとうございます。m(_ _)m できました!!\(^o^)/ VLOOKUPに代表される配列関数は、どうも苦手で避けて 通ってきてしまっていたのですが、こんなに簡単な 関数で望みのことができるなんて目からうろこです! もっと勉強しないといけないですね。(^^; 本当にどうもありがとうございました!!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.2

http://oshiete.coneco.net/kotaeru.php3?q=2558656 内容は一致しませんが上記URLをご参照頂き読替ください ほぼこのURL中の私の記載通りですね 転記します ご質問の内容が 「詮索機能を実現するにはどのような構文がありえるのか網羅したい」 と言うこととお見受けしましたので 愚考して式を作ってみました… (*^_^*) この1件だけ出せばいいという内容からすると VLOOKUPに比べやや邪道ですが =CHOOSE(SIGN(SUMPRODUCT((Sheet1!$A$1:$A$3=$A1)*1)-1)+2,"対象外",INDEX(Sheet1!$A$1:$B$3,MATCH($A1,Sheet1!$A$1:$A$3,0),2),OFFSET(Sheet1!$A$1,LOOKUP(1,{1},SMALL((Sheet1!$A$1:$A$3<>$A1)*65555+ROW(Sheet1!$A$1:$A$2),COLUMN(Sheet1!A1)))-1,1,1,1)) =CHOOSE(SUMPRODUCT((Sheet1!$A$1:$A$3=$A1)*ROW(Sheet1!$A$1:$A$3))+1,"対象外",Sheet1!$B$1,Sheet1!$B$2,Sheet1!$B$3) =IF(COUNTIF(Sheet1!A:A,$A1)<>1,"対象外",OFFSET(Sheet1!$A$1,LOOKUP(1,{1},SMALL((Sheet1!$A$1:$A$3<>$A1)*65555+ROW(Sheet1!$A$1:$A$3),COLUMN(Sheet1!A1)))-1,1,1,1)) 最初のは長いですが CHOOSE構文のインデックスの算出法とか OFFSET構文を使っているあたりとか 検索に2件以上ヒットした場合にも右に式をコピーすれば2件目以降の値表示をするとか SMALL構文が扱う配列の作り方とか etc 自画自賛になりますが秀逸なものがあると思います また、元データの位置を1つ下にずらして頂いて 新たに空いたB1に「対象Guy」と入れて頂ければ =LOOKUP(INDEX(LARGE((Sheet6!$A$2:$A$4=$A1)*ROW(Sheet6!$A$1:$A$3),COLUMN(Sheet6!A1))+1,),ROW(Sheet6!$A$1:$A$4),Sheet6!$B$1:$B$4) とか {=INDEX(Sheet6!$A$1:$B$4,LARGE((Sheet6!$A$2:$A$4=$A1)*ROW(Sheet6!$A$1:$A$3),COLUMN(Sheet6!A1))+1,2)} とかも使えますね 最後に、DGET構文やHLOOKUP構文が使えるとなかなかなのですが DGET構文は検出条件の指定に ・見出しと検出キーが縦並びにセットになっていないといけない ・定数配列で指定できない HLOOKUP構文はデータの元フィールドが横向きに並んでいないといけない などの癖があって、ちょっと惜しいのですが使えません 以上が転記 後、過去のWendy02さんの発言に (http://oshiete.coneco.net/kotaeru.php3?q=2551423) こういうものがありました 以下抜粋転記 http://support.microsoft.com/kb/214142/ja 製品[Excel 2000] 用語[配列] で検索して選んでみました。 後は、いろいろググってみてください。 -------------------------------------- 以下は、私が、配列数式を始めて知った場所です。 http://support.microsoft.com/kb/402181/ja [XL2002] n 行おきの合計を算出する方法 (私は、知らなかった↓) http://support.microsoft.com/kb/268001/ja [XL2003] Excel でセル範囲内の一意の要素を数える方法 http://support.microsoft.com/kb/214142/ja [XL] 条件を複数指定して INDEX および MATCH ワークシート関数を使用する方法 http://support.microsoft.com/kb/213916/en-us [XL2000]同じ値がある場合の順番付け Rank Duplicate Values Sequentially in Excel 2000 以上転記 なかなか秀逸ですね 他にも このコーナーで エクセル 検索 関数 をキーにして検索して頂けると http://oshiete.coneco.net/kotaeru.php3?q=2601097 http://oshiete.coneco.net/kotaeru.php3?q=2567478 http://oshiete.coneco.net/kotaeru.php3?q=2554599 http://oshiete.coneco.net/kotaeru.php3?q=2549026 etc これらは凡例こそ違えど意図することは皆同じ エクセルのシート関数での検索です 他にも山ほど出てきますよ 一度ご参照頂けたら幸いです

michbird
質問者

お礼

長文にわたるご回答、どうもありがとうございました。 Excel、比較、などでサイト内検索をかけたのですが、イマイチ 目的のものにぶつからず、こうして質問させていただいてしまいました。 既出のご回答まで転載くださり、ありがとうございます。 >CHOOSE構文のインデックスの算出法とか >OFFSET構文を使っているあたりとか >検索に2件以上ヒットした場合にも右に式をコピーすれば2件目以降の値表示をするとか >SMALL構文が扱う配列の作り方とか これは機能がすごいですね! ぜひ、機会があったら使用させていただきたいと思いました。 ・・・が、どれも初めて使う関数で、どのセルにこの3つの式を 入力すれば良いのか、とか、色々試行錯誤しないと使えなさそうです。(^^; 配列は昔から苦手で、何度かチャレンジしたのですが自力で成功した ためしがなく、最近ではすっかり拒否反応を起こすようになっていました。 が、これを機会にまた時間を見つけつつ勉強していきたいと思います。 ほかにも色々参考例を載せていただき、本当にありがとうございました!!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルについて

    宜しくお願いします。 エクセル2003について質問をしたいので宜しくお願いします。現在VLOOKUP関数について勉強をしています。予め読み込みたいデータを作成し、(リンゴ、メロン、ミカン、イチゴ、バナナ)その右側に入力されているデータを自動的に読み込むというものだと思いますが、入力するリンゴ、メロン、ミカン、イチゴ、バナナを手入力するのではなく、入力するセルをクリックする事により、セルの右下に三角のようなマークが出てきてそれをクリックするとリンゴ、メロン、ミカン、イチゴ、バナナが縦に出てきて、該当の項目をクリックする事により入力することは出来ませんでしょうか? どなた様かご教示の程宜しくお願いします。

  • Excelで同一文字列を検出して隣りのセルに返すなどしたい

    Excelのシートの1列に文字列がずらっと並んでいるとします。本来は「いちご、りんご、ばなな、みかん、すいか、めろん」と、ダブリがないはずの項目ばかりが入力されているはずでしたが、しかし実際は「いちご、りんご、ばなな、りんご、みかん、いちご、すいか、めろん」という風に、いくつかの項目にダブリがあるとします。そこで、そのダブリを発見し、何がダブっているのか手早く知る方法があれば教えてください。関数、もしくはマクロをご存知の方、お願いいたします。

  • エクセルの関数(IF関数?)について教えてください

    excelの関数についてわからず、困っています。 どのような関数を入れればよいのか、ご教授お願いいたします。   sheet1に下記のような表があり、 No 項目名 日付 1 りんご 11/1 2 バナナ  3 いちご  sheet2に No 項目名 日付 7 バナナ  8 りんご  9 パイン  という表があるとします。 sheet1に日付を入力した時に(りんごの右の11/1) sheet1の項目名と一致するsheet2の項目名の右のセルに同じ日付が入るようにさせたいです。 どのような関数を入れたらよいでしょうか。   よろしくお願いいたします。  

  • エクセルについて

    前回も質問をしましたが、再度お願いします。 エクセル2003について質問をしたいので宜しくお願いします。現在VLOOKUP関数について勉強をしています。予め読み込みたいデータを作成し、(リンゴ、メロン、ミカン、イチゴ、バナナ)その右側に入力されているデータを自動的に読み込むというものだと思いますが、入力するリンゴ、メロン、ミカン、イチゴ、バナナを手入力するのではなく、入力するセルをクリックする事により、セルの右下に三角のようなマークが出てきてそれをクリックするとリンゴ、メロン、ミカン、イチゴ、バナナが縦に出てきて、該当の項目をクリックする事により入力することは出来ませんでしょうか? という質問をしました。ご教示いただいたのが以下の通りです。 「入力規則」で、「リスト」を選択し、リストに検索対象のセルを範囲指定すればOK。 そこで入力規則と実行してみましたが、セルの範囲指定の方法が分からず困っています。 どなた様かご教示の程宜しくお願い致します。 いつも勉強させていただいております。

  • エクセル2003での質問です

    エクセルの関数の質問です  例えばですが、シート1をデータシートして、A列に日付とし、B列にりんごの種類、C列にみかんの種類  D列にいちごの種類とした時に、シート2を検索シートとした場合、検索シートのA1に特定の日付を  入力した時、B1に特定の条件で表示出来る方法が知りたいです。  通常、はD1列(いちごの列は、データが全て入っています)の「いちご」を表示させ、  B列にりんごを入力した場合は「りんご、いちご」と表示させ  C列にみかんが入力された時は、「みかん」と表示させたいのです。   (B、C列は日付により「みかん」だけ、「りんご」だけとかあります) よろしくお願いします。

  • エクセルマクロでシート名を条件にする方法

    エクセルマクロで、 たとえば、「りんご」「ぶどう」「みかん」「いちご」「なし」という5つのシートがあって、 シート名が「りんご」「みかん」「いちご」のシートはシートの色を赤にして、その他のシートはシート色を青にする、といったことをしたいのですが、マクロではどのようにしたらよいのでしょうか。 実際にはシートが20シートあり、手処理で色を変更するという単純作業をやっているため、自動化したいと考えています。 マクロについては初心者のため、自分ではどのように書いたらよいかわかりませんので、どうかよろしくお願いいたします。

  • エクセル関数で教えて下さい

    本店で「りんご」を100円「みかん」を200円「いちご」を300円「バナナ」を400円で売っています。 支店は「りんご」を500円「みかん」を600円で売っていて「いちご」「バナナ」は売っていません。A1セルに本店か支店を入力、B1セルに商品を入力するとC1セルに値段が出るようにしたいのですが C1セルにどのような関数を使えばいいのでしょうか?

  • エクセル 行にある項目を抽出

    間違えて他のカテゴリーで質問してしまいました。 そちらは閉めましたので改めてこちらで質問させてください。 エクセルで下記のような表から項目を抽出したいのですが うまくいきません A列 りんご みかん りんご ぶどう みかん と入力されていて任意のセルに、A列に入力されている項目から 重複分を除き抽出したいです 具体的には任意セルに「りんご、みかん、ぶどう」と抽出したいのです。 フィルタオプションを利用し、抽出することはできました。 また、それをマクロ登録すれば、A列に追加項目があっても 自動変更できるという、回答も頂き、確かにできたのですが、 このエクセルから、ハイパーリンクでワードへ飛ばしたり、 いろいろと込み入っているため、できれば、 マクロではなく、関数利用をしたいのですが、 どのような関数を利用すればよいのかわかりません。 ご存知でしたら、ご教示お願いいたします。

  • エクセルで、スペースで区切られた言葉をわける。

    たとえば、セルのA1に、  りんご■バナナ■みかん■ぶどう■いちご (■=半角スペース) とあったときに、 B1のセルにりんご C1のセルにバナナ D1のセルにみかん E1のセルにぶどう F1のセルにいちご となるようにB1~F1に入力する関数があれば教えてください。

  • Excelでこのようなときはどんな関数にすればよいでしょうか

    同じブック内で以下のような2シートがあるときに、 (シートA)    A   B    C    1  あい  123  りんご 2  うえ  456  みかん   3  おか  789  イチゴ (シートB)    A   B    C    1  あい  123  めろん 2  えお  456  みかん   3  おか  789  イチゴ 横に並んだ3項目が同じものにだけ、(シートB)のセルに色を付けたいのです。 (上記の例だと、3行目が3項目とも一致しているということです) 色は横3つのセルにつけられなければ、A列のセルだけでも構いません。 (上記の場合、色をつけたいのはシートB「おか」のセル) 列を増やすなど、処理用のデータが必要でも非表示にすればいいので その点は構いません。 関数や条件付書式などで、なんとかなりますでしょうか?

専門家に質問してみよう