[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数語のあいまい検索について』(亜美) EXCEL2003/XP-SP2です。 よろしくお願いいたします。 あいまい検索でさがしたのですが、 単一の検索しかないようでしたので 複数のあいまい単語を 一括で処理できないか相談に乗っていただけないでしょうか。
条件は以下のとおりです。
A-Hまでがあいまいな単語です
A が含まれていれば "1" B が含まれていれば "1" C が含まれていれば "1" D が含まれていれば "2" E が含まれていれば "2" F が含まれていれば "3" G が含まれていれば "3" H が含まれていれば "3"
項目 A B C JAPAN 1 0 0 BOXY 1 0 0 DAC 1 2 0 GOLF 0 0 3
項目の単語に該当のあいまい語が含まれていれば 該当するあいまい語 A B C に各フラグ"1","2","3"を 立てたいのですがどのような関数を組み合わせて作成 したらよいでしょうか。 よろしくお願いいたします。
B2に=1*NOT(AND(SUBSTITUTE(A2,{"A","B","C"},)=A2))、
C2に=2*NOT(AND(SUBSTITUTE(A2,{"D","E"},)=A2))、
D2に=3*NOT(AND(SUBSTITUTE(A2,{"F","G","H"},)=A2))として、
これらを下にフィルドラッグ。というものは、どうでしょう? (6UP)
=OR()を利用するものも書いてみます。
B2に=1*OR(COUNT(FIND({"A","B","C"},A2)))、
C2に=2*OR(COUNT(FIND({"D","E"},A2)))、
D2に=3*OR(COUNT(FIND({"F","G","H"},A2)))。
ありがとうございます。 できました。 が、実はA-Hまでと記載しておりますが、実データは項目として 300語位対象があるので、"A","B",・・・"H"のような記載方法では 厳しいのです。 ""の中を、テーブル参照のイメージでA-Hを範囲指定みたいな 方法で検索するする方法はないでしょうか。
たとえば
1*NOT(AND(SUBSTITUTE(A2,{"ここに以下のテーブルXのA-Cまで読みこむ"},)=A2)
テーブルX
1 A 1 B 1 C
というようなことが可能でしょうか。 と勝手なことばかりで申し訳ありませんが・・ いかがでしょうか。
E1:E5にA、B、C、XXXXXX、XXXXXX(空白には、対象範囲にありえない文字を埋めておきます) としておきますと、 =1*NOT(AND(SUBSTITUTE(A2,E$1:E$5,)=A2))として、Ctrl+Shift+Enterや =1*OR(COUNT(FIND(E$1:E$5,A2)))として、Ctrl+Shift+Enterなどと、 することが、できます。検索する範囲は、検索する文字があるところまでに限定し、 空白範囲を検索する対象には、しないでください。 (6UP)
できました。
ありがとうございました。
うーん、感心するばかりです。さすがですね。
ところで、Ctrl+Shift+Enterをするのと
しないのではなにが違うのですか?
最初上手くいかなかったのですが、
Ctrl+Shift+Enterをやったら{}がつき
うまくいくようになりました。
自分で調べればいいのでしょうが・・・
Ctrl+Shift+Enterとするのは、始めてですか? 何回か経験しますと、自然に体得できると思いますが、取っ付きが悪いものです。
メニューのヘルプで「配列数式」をご覧になると説明があります。 しかし、この説明を見て理解できる方は、少数でしょう?
概略、説明させていただきますと、このようなことなのです。
A B C D
1 10 10 TRUE TRUE
2 20 FALSE TRUE
3 10 TRUE TRUE
4 30 FALSE TRUE
5 50 FALSE TRUE
↑
{=A$1:A$5=B$1}
↑
=A$1:A$5=B$1
上の表でC1に=A$1:A$5=B$1と入力し、C5まで複写し同一の数式を配置します。
このA$1:A$5は、普通は、単一セルを書くところですが、このように書きますと、 C1に書いたA$1:A$5は、C1と同じ行のA1を指し、 C2に書いたA$1:A$5は、C2と同じ行のA2を指し、 C3…… …… A3 … C4…… …… A4 … C5…… …… A5を指すという仕組みになっているようです。***
従って、C1は、A1=B1、C2は、A2=B1、C3は、A3=B1、C4は、A4=B1、C5は、A5=B1の意味になり、 それぞれ、TRUE、FALSE、TRUE、FALSE、FALSEを戻しています。
しかし、同じ数式=A$1:A$5=B$1をD1に入力し、Enterの代わりにCtrl+Shift+Enterとしますと、 ***の仕組みの機能をやめて、A$1:A$5のセル参照をエクセルの中間配列に蓄えこれを参照する ことになっているようです。D1をD5まで複製しても同じ結果が戻っています。
D1からD5までの各セルごとにすべて
{A1=B1;A2=B1;A3=B1;A4=B1;A5=B1}→{TRUE;FALSE;TRUE;FALSE;FALSE}が蓄えられていますが、
セルの表示は、1個だけしか表示できません。
この配列を=OR(A$1:A$5=B$1)として、Ctrl+Shift+Enterとしますと、TRUE、 =AND(A$1:A$5=B$1)として、Ctrl+Shift+Enterとしますと、FALSEを戻します。
このようなことなのですが、ご不満でしょう? しかし、私の現在の実力からしますと、この程度の説明になってしまいます。
下は、芳坂さんという方の有名なサイトですので、参考に添付します。 (6UP) http://pc21.nikkeibp.co.jp/special/hr/hr1.shtml
ありがとうござました。 ここまでしつこい質問に丁寧にかつ詳細に 解説いただきまして感謝いたします。 まだ理解が難しい部分はありますが、 なんとなくわかりました。ぽうさんのサイトを見たときに わたしと同じ質問におもわず笑ってしまいました。 (6UP)さん、ありがとうございました。 (亜美)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.