アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんばんは。いつもお世話になっております。
今日はエクセル2000での VLOOKUP について質問させて頂きたい事がございます。まずはデータですが

A列→氏名
B列→生年月日
C列→配属部署

で、範囲 A2:C6 として入力されております。そして

A3/A4/A5 には 斉藤

という名前が入っており、配属部署は

C3→秘書 C4→経理 C5→財務

となっています。この状況で A9に 斉藤 と入力されていた場合、=VLOOKUP(A9,A2:C6,3,0) で結果を見ると C3の 秘書 が返ってきます。
次に =VLOOKUP(A9,A2:C6,3) で結果を見ると C5の 財務 が返って来ます。
そこで、C4の 経理 を表示させたい場合はどのようにすれば宜しいのでしょうか。
※仕事が多忙で今は自宅から投稿しておりますが、業務でこれが必要ですので明日、会社からアクセスしてこちらのPAGEを拝見することになりますが、投稿するいは環境が厳しいので、補足やお礼がすぐに出来ない場合もあるかと存じます。が、どうぞ宜しくお願い致します。

A 回答 (4件)

こんにちは。



各レコードを一意に識別するIDもしくはその代わりになるものが
全く見当たりませんね。
それでは「検索」するのは無理です。
ごっちゃになりますよ。

斎藤という方が3人いらっしゃるんですよね?

職員コードを振るなどの工夫をされたほうがいいと思います。

勘違いだったらごめんなさいね。

この回答への補足

こんばんは。つい先程、帰宅しましたぁ~…^^; 
早速のご回答、有難うございました。実は今回の例で記載しました“氏名”に当たる部分は、実際に私たちが扱うデータでいう“部番コード”と呼ばれるものに値します。
そして、この部番コードというものは 1234568 や AX588947849 という桁数も決まっていない値が入っております。が、この桁数は問題にはならないと思うのですが、vlookupの範囲内には、先程申し上げた“部番コード(A列)”“機種コード(B列)”“開発名称(C列)”というデータがはいっており、しかし厄介なのが同じ“部番コード”に対して複数の“機種コード”と“開発名称”が入っている事です。そしてその数分だけきちんと全て反映させなくてはならないのです。…ごめんなさい。ここの所、睡眠が4時間切る毎日で帰宅してからも一人暮らしの為にやらなくてはならないことがたんまりあって結構、焦って記載しています。気持ちを落ち着けないといけませんね^^; もう少し判りやすく記載させて頂きます。

【vlookupで指定する範囲のデータと値】
A1セル→7403206 B1セル→B12 C1セル→VENUS-C1
A2セル→7403206 B2セル→D12 C2セル→VENUS-C3
A3セル→rr581   B3セル→LAI  C3セル→Jupiter
A4セル→85480   B4セル→LAI  C4セル→Jupiter-A
A5セル→85480   B5セル→915  C5セル→Marti60
※このような感じで10000件ほどあります。

【vlookupを記述する方のデータ】
A1セル→rr581
A2セル→7403206
A3セル→85480
※全部でA800まで値が入っています。

==続きはお礼欄です==

補足日時:2004/09/30 00:19
    • good
    • 0
この回答へのお礼

=処理したいこと=
 ※【vlookupで指定する範囲のデータと値】と【vlookupを記述する方のデータ】は同ファイル内で別Sheetに存在しています。

A1セル(rr581)に対応するB,C列のデータは一つしかないので問題ないのですが、A2セル(7403206)に入っている値に対しては【vlookupで指定する範囲のデータと値】を見てお判り戴けます通り B1セル→B12 C1セル→VENUS-C1 と B2セル→D12 C2セル→VENUS-C3 になります。
この場合、両方とも必要なデータであり、しかも一行に記載したいことから

A2セル→7403206 B2セル→B12 C2セル→VENUS-C1
A3セル→7403206 B3セル→D12 C3セル→VENUS-C3

となります。
そうすると本来、A3セルに入っていた値 85480 は一行下がって、A4から始めなくてはなりません。
このようにvlookupで指定した範囲内にあるデータを全て引っ張ってきて、その都度、その件数に応じて行も増えてくる事になります。このような複雑な処理なんて出来るのかなぁ、、、と思ってしまっていますがエクセルでは無理なのでしょうか。アクセスになってしまうのかな?(アクセスも簡単なものなら処理できるのですが複雑になると、もう頭がパニックを引き起こしてしまうのですが、それでも頑張らないと^^;)

もしも、お手すきなお時間がおありでしたらどうぞ宜しくお願い致します<(_ _)>

お礼日時:2004/09/30 00:33

こんにちは。

maruru01です。

補足です。

=VLOOKUP(A9,A2:C6,3,0)

と、第4引数に「0」(本当はFALSE)を指定すると、上から一番最初に見つけたA9の行を参照します。
(だから、C3)
でも、

=VLOOKUP(A9,A2:C6,3)

と、第4引数を省略する(TRUEと同じ)場合は、必ずしも3番目や一番下の行を参照するとは限りません。
この第4引数を省略(TRUE指定)する場合は、データを昇順に並べておく必要があり、
基本的には数値に対して、ちょうどの値がない場合に対応するためのものです。
(ヘルプ参照)
今回のパターンではでたらめな値になるので、使用すべきではありません。
個々を区別させるには、No.1の方の指摘にもあるように、区別出来るユニークなデータが必要です。

この回答への補足

こんばんは。早速のご教授、誠に有難うございました。実は実際にやる作業というのは今にして思うとかなり難しいのかな?と感じております。もしも宜しければで構いませんので、下記に、より詳細を記載させて頂きましたので、お手すきのお時間がありましたらどうぞご教授下さいませ。

実は今回の例で記載しました“氏名”に当たる部分は、実際に私たちが扱うデータでいう“部番コード”と呼ばれるものに値します。
そして、この部番コードというものは 1234568 や AX588947849 という桁数も決まっていない値が入っております。が、この桁数は問題にはならないと思うのですが、vlookupの範囲内には、先程申し上げた“部番コード(A列)”“機種コード(B列)”“開発名称(C列)”というデータがはいっており、しかし厄介なのが同じ“部番コード”に対して複数の“機種コード”と“開発名称”が入っている事です。そしてその数分だけきちんと全て反映させなくてはならないのです。…ごめんなさい。ここの所、睡眠が4時間切る毎日で帰宅してからも一人暮らしの為にやらなくてはならないことがたんまりあって結構、焦って記載しています。気持ちを落ち着けないといけませんね^^; もう少し判りやすく記載させて頂きます。

【vlookupで指定する範囲のデータと値】
A1セル→7403206 B1セル→B12 C1セル→VENUS-C1
A2セル→7403206 B2セル→D12 C2セル→VENUS-C3
A3セル→rr581   B3セル→LAI  C3セル→Jupiter
A4セル→85480   B4セル→LAI  C4セル→Jupiter-A
A5セル→85480   B5セル→915  C5セル→Marti60
※このような感じで10000件ほどあります。

【vlookupを記述する方のデータ】
A1セル→rr581
A2セル→7403206
A3セル→85480
※全部でA800まで値が入っています。

==続きはお礼欄です==

補足日時:2004/09/30 00:33
    • good
    • 0
この回答へのお礼

=処理したいこと=
 ※【vlookupで指定する範囲のデータと値】と【vlookupを記述する方のデータ】は同ファイル内で別Sheetに存在しています。

A1セル(rr581)に対応するB,C列のデータは一つしかないので問題ないのですが、A2セル(7403206)に入っている値に対しては【vlookupで指定する範囲のデータと値】を見てお判り戴けます通り B1セル→B12 C1セル→VENUS-C1 と B2セル→D12 C2セル→VENUS-C3 になります。
この場合、両方とも必要なデータであり、しかも一行に記載したいことから

A2セル→7403206 B2セル→B12 C2セル→VENUS-C1
A3セル→7403206 B3セル→D12 C3セル→VENUS-C3

となります。
そうすると本来、A3セルに入っていた値 85480 は一行下がって、A4から始めなくてはなりません。
このようにvlookupで指定した範囲内にあるデータを全て引っ張ってきて、その都度、その件数に応じて行も増えてくる事になります。このような複雑な処理なんて出来るのかなぁ、、、と思ってしまっていますがエクセルでは無理なのでしょうか。アクセスになってしまうのかな?(アクセスも簡単なものなら処理できるのですが複雑になると、もう頭がパニックを引き起こしてしまうのですが、それでも頑張らないと^^;)

もしも、お手すきなお時間がおありでしたらどうぞ宜しくお願い致します<(_ _)>

お礼日時:2004/09/30 00:36

1.


VLOOKUPについての説明です。

=VLOOKUP(A9,A2:C6,3,0)
VLOOKUPの四番目の引数に「0」が指定されています。
ここに「0」か「FALSE」を指定すると、
VLOOKUP関数はA2:A6を上から探していって一番最初に見つかった値と同じ行の「3」列目の値「秘書」を返します。

=VLOOKUP(A9,A2:C6,3)
VLOOKUPの四番目の引数は省略されています。
省略するとVLOOKUPは「0以外の値」か「TRUE」を指定されたと考えます。
ここに「0以外の値」か「TRUE」を指定すると、
VLOOKUP関数はA2:A6を未定って探している値未満で一番大きい「斉藤」見つけ、
同じ行の「3」列目の値「財務」を返します。
「斉藤」が複数あれば下のほうが値が大きいと判断します。
この時VLOOKUPは、A2:A6は必ず昇順に並んでいると考えています。
ですから引数を省略する場合はここを昇順に並べ替えておいてください。

2.
1の説明で数式によって返された値が違う理由がおわかりだと思います。

さて、同じ名前を別人だと、どのように判断していますか?
名前と生年月日の2つの要素で別人だと判断するのなら
A9に名前、B9には生年月日を入力し、
数式ではこの2つとも合致した人の3列目の値を返すようにします。
数式バーに
=OFFSET(C1,MATCH(A9&B9,A2:A4&B2:B4,0),)
と入力して、Ctrlを押しながらShiftを押しながらEnterを押して確定します。
数式バーには
{=OFFSET(C1,MATCH(A9&B9,A2:A4&B2:B4,0),)}
と表示されているはずです。

3.
もしできれば識別番号(社員コードや便宜上つけた番号)をA列に入力し、
表を右にずらすと検索が簡単でいいと思います。
数式は
=VLOOKUP(A9,A2:D6,4,0)
になります。


回答に時間がかかったので他の回答者さんと重複していましたらすみません。

この回答への補足

こんばんは。早速のご教授、誠に有難うございました。そしてとても詳しく、判りやすい表現でご説明戴きました事にお礼申し上げます。それから、頂戴しましたご回答 2. は本日、会社で新たに追加された課題に近い事柄でして、本当に助かりました。重ねて御礼申し上げます。
早速ですが、もしも宜しければで構いませんので下記に、より詳細を記載させて頂きましたので、お手すきのお時間がありましたらどうぞご教授下さいませ。

実は今回の例で記載しました“氏名”に当たる部分は、実際に私たちが扱うデータでいう“部番コード”と呼ばれるものに値します。
そして、この部番コードというものは 1234568 や AX588947849 という桁数も決まっていない値が入っております。が、この桁数は問題にはならないと思うのですが、vlookupの範囲内には、先程申し上げた“部番コード(A列)”“機種コード(B列)”“開発名称(C列)”というデータがはいっており、しかし厄介なのが同じ“部番コード”に対して複数の“機種コード”と“開発名称”が入っている事です。そしてその数分だけきちんと全て反映させなくてはならないのです。…ごめんなさい。ここの所、睡眠が4時間切る毎日で帰宅してからも一人暮らしの為にやらなくてはならないことがたんまりあって結構、焦って記載しています。気持ちを落ち着けないといけませんね^^; もう少し判りやすく記載させて頂きます。

【vlookupで指定する範囲のデータと値】
A1セル→7403206 B1セル→B12 C1セル→VENUS-C1
A2セル→7403206 B2セル→D12 C2セル→VENUS-C3
A3セル→rr581   B3セル→LAI  C3セル→Jupiter
A4セル→85480   B4セル→LAI  C4セル→Jupiter-A
A5セル→85480   B5セル→915  C5セル→Marti60
※このような感じで10000件ほどあります。

【vlookupを記述する方のデータ】
A1セル→rr581
A2セル→7403206
A3セル→85480
※全部でA800まで値が入っています。

==続きはお礼欄です==

補足日時:2004/09/30 00:37
    • good
    • 0
この回答へのお礼

=処理したいこと=
 ※【vlookupで指定する範囲のデータと値】と【vlookupを記述する方のデータ】は同ファイル内で別Sheetに存在しています。

A1セル(rr581)に対応するB,C列のデータは一つしかないので問題ないのですが、A2セル(7403206)に入っている値に対しては【vlookupで指定する範囲のデータと値】を見てお判り戴けます通り B1セル→B12 C1セル→VENUS-C1 と B2セル→D12 C2セル→VENUS-C3 になります。
この場合、両方とも必要なデータであり、しかも一行に記載したいことから

A2セル→7403206 B2セル→B12 C2セル→VENUS-C1
A3セル→7403206 B3セル→D12 C3セル→VENUS-C3

となります。
そうすると本来、A3セルに入っていた値 85480 は一行下がって、A4から始めなくてはなりません。
このようにvlookupで指定した範囲内にあるデータを全て引っ張ってきて、その都度、その件数に応じて行も増えてくる事になります。このような複雑な処理なんて出来るのかなぁ、、、と思ってしまっていますがエクセルでは無理なのでしょうか。アクセスになってしまうのかな?(アクセスも簡単なものなら処理できるのですが複雑になると、もう頭がパニックを引き起こしてしまうのですが、それでも頑張らないと^^;)

もしも、お手すきなお時間がおありでしたらどうぞ宜しくお願い致します<(_ _)>

お礼日時:2004/09/30 00:40

補足に気づくのが遅くなりました。

失礼しました。

今ひとつやりたい事が飲み込めません。
例えばSheet2のA列に部番コードのありったけ(800種類)を書き出し、
それに対応した機種、開発名称を全部表示させるのでしたら、
VLOOKUPで引っ張ってこずとも、
A列をキーにして並べ替えればすべて揃います。
ただし任意の順番通りに並べ替えるには
ツール→オプション→ユーザー設定リストで登録する必要があります。
Sheet1に重複するデータがなければ、Sheet2の結果は当然10000行になるでしょう。

また、
部番ごとにオートフィルタで手作業で絞り込む方法もあります。
Excel2000であれば、絞り込んだ結果を、可視セルのみコピーしなおす作業が必要です。
絞り込んだ結果を別シートに手作業で貼り付けることになります。
(ただしA列ドロップダウンリストに
 入力データが表示されるのは1000件までなので
 部番の1001種類目からは表示されない事があります。
 部番が800種類であればOKですね)

また、余談になりますが、それぞれの列には文字列と数値が入り乱れて入力されています。
VLOOKUPで探されるのならSheet1のA:B列と、Sheet2のA列を文字列に統一されておくと宜しいかと思います。
VLOOKUPでは、文字列をもって数値を探したり、数値でもって文字列を探したりすると、
戻り値がエラーになりますから。

こちらも忙しくしていて申し訳ありません。
    • good
    • 0
この回答へのお礼

こんにちは。お返事がとても遅くなってしまいまして申し訳ございませんでした。そしてご多忙中でしたのにご丁寧に有難うございます。

色々とアドバイスを有難うございました。当方の説明が悪い状態にも関わらず、本当に感謝しております。おかげさまで、無事に解決致しました。『ツール→オプション→ユーザー設定リスト』の存在を知らなかったので大変、勉強になりました。

この度はほんとうに本当に有難うございます。深くお礼申し上げます。

お礼日時:2004/10/10 15:46

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