過去の桐井戸端BBS (桐ver.8)
7330 2番目のデータを表引きしてくれない keizan 2000/08/25-15:36
桐ver5(dos版)のファイルをそのまま全部コピーして桐ver8(windows版)で保存し、使おうとしたところ、
いくつかうまく行かない点がありまして……。
詳しい方、経験がある方、教えてください。

表引きの元になるファイルの顧客リストの名前からその住所を引くように設定してますが、
場合によってはちゃんと入力した人のところを引いてくれなくて困ってます。
たとえば、元になるリストには 鈴木1、鈴木2、鈴木3の鈴木さんが3人いる場合、
私が表引きしたいと思って入力したのは鈴木2なのに
表引きされるのは鈴木1、つまりいつも表の一番前にあるデーター表引きされるんです。
私は鈴木2とちゃんと名前まで入れたのに.…ただし、それには例外があって、
おかしいなことに手入力ではなくその、鈴木2という名前をコピーして貼り付けした場合には
最初から鈴木2さんを表引きしてくれます。
どこか微妙なところで文字設定などが違ったのでしょうか.
もしそれが原因なら設定の仕方も教えてくれる方.お待ちしております。

これから色々エラーが出てくると思いますけど、とりあえずこんなところかな・…
7333 R表引きは唯一の値で行って下さい 佐田 守弘 2000/08/25-23:14
記事番号7330へのコメント
keizanさん

■表引きの件
この表引きは、「#表引き」関数による表引きですね。
表引き関数では、該当するデータが複数有る場合、先頭のデータのみが表引きされ、
2行目以降のデータは無視されます。
これはそういう仕組みなので致し方ありません。
値リストとしての表引き入力では、一覧の中からユーザーが選択枝手入力しますが、
表引き関数による場合には、そういうものなのだと思って下さい。
●表引きはユニークな値で引く事が必要
上記の答では「それじゃ答にならない」と思われるかも知れません。
実は、表引きの仕方が誤っています。
表引き関数を使った表引きの様な場合(これは結合機能などを使う時も同じです)
その値で唯一に決まる値を指定して、表引きをする様に表の仕組みを設計する事が必須です。
●何を指定すればユニークになるのか
御質問の件は、名前の[姓]の値で表引きしている様ですね。
しかし、世の中には鈴木さんは多数おりますから、[姓]では1人を特定できません。
[氏名]を使っても同じです。
なぜなら、同姓同名の人が出て来る可能性が否定できないからです。
桐の様なデータベースで、複数のデータ(表)を関連づける場合、値が重複しない項目を選ぶ必要があります。
多分、氏名の他に生年月日、本籍を指定すれば、ユニーク(唯一)に指定できるかも知れません。
でも、データベースでは一般にそんな面倒な事はしません。
ではどうするかと言えば、値がユニークになるものを氏名とは別につけるのです。
例えば会社であれば社員番号、学校であれば学籍番号、病院などでは患者番号といった番号を付けます。
おそらく御質問の件は顧客名の様なので、重複しない顧客コードを付けます。
そして、この顧客コード(顧客番号)で表引きを行えば、
目的とする鈴木2さんを唯一に指定して表引きする事が可能です。
●顧客番号などいちいち入力できない
データベースの設計をうまく行えば、キーとなる顧客番号を表に出さずに、
鈴木さんの名前のリストから選ぶだけで顧客番号を自動的に入力させるといった事も可能です。
このあたりは、説明をするとかなりの分量になるので、私を始め多数の方々のサンプルを参考にしてみて下さい。

佐田守弘(KS-00119)
7334 (補足)例外の様な現象が起きるのは 佐田 守弘 2000/08/25-23:19
記事番号7333へのコメント
keizanさん
表引きに関しての補足です。
>それには例外があって、おかしいなことに手入力ではなくその、
>鈴木2という名前をコピーして貼り付けした場合には最初から
>鈴木2さんを表引きしてくれます。

との事ですが、おそらくこれは貼り付けによって、鈴木2,鈴木1の順にデータが並んだのでしょう。
別に例外とか特殊な現象が起きているのではないと思います。
試しに表データの並び方を確認してみて下さい。

佐田守弘(KS-00119)

戻る