Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : Excel 2013)
取引先データと名刺データの紐づけ
投稿日時: 17/11/30 22:55:49
投稿者: YU0001

VLOOKUPで、名刺データに取引先データの担当営業を紐づけようとしたところ、
名刺の写真を撮って取り込むためか、名刺データの社名がおかしくなっています。
社名をキーにして紐づけをします。
 
例を出すと
三井商事株式会社
三井・商事株式会社
"三井商事
株式会社"
三井商事株式会社mitsubishisyouji
"三井商事株式会社
mitsumishi"
 
のような感じで、altでセルが改行されているデータもありました。
顧客データの「三井商事株式会社」は山田さんが営業なので、上のすべてのデータに山田を
紐づけしたい場合はどのようにすればよいでしょうか?
何か関数を使えばできるのか、何回か手順をふまないとできないのか
教えていただきたいです。
 
どうぞよろしくお願いします。
 
 
 

回答
投稿日時: 17/12/01 00:07:20
投稿者: もこな2

>社名をキーにして紐づけをします。
>顧客データの「三井商事株式会社」は山田さんが営業なので、上のすべてのデータに山田を
紐づけしたい場合はどのようにすればよいでしょうか?
う〜ん。なにをやりたいのか、何をやっているのか、よくわからないです。
 
推測ですがこうでしょうか。
 
1.名刺の写真を撮ってOCRソフトで文字を抜き出して、エクセルに張り付けるとうまく認識されずに文字化け、改行が発生します。
例えば 「三井商事株式会社」って認識してほしいものが
 
「三井・商事株式会社」
 
「"三井商事
株式会社" 」
 
「三井商事株式会社mitsubishisyouji」
 
「"三井商事株式会社
mitsumishi"」
のように、ゴミデータが入ったり、改行されたり、英語読み部分まで会社名として認識されることがあります。
 
 
 2.1を、Excelの「一覧表」シートにそのまま張り付けて、顧客データを入力した「顧客データ」シートに会社名を入力したらVllokuo関数で担当者が呼び出されるようにしたいけれども、完全一致じゃなくてもデータを引っ張ってくるようにする方法はありますか?
 
とかですかね。。。。
 
答えるとすれば、Vllokuo関数には、完全一致でなく、近似値っていう引数もあるので絶対できないとは言わないですけど、上記のことが御所望であれば、無理があるようにおもいます。(力に慣れなくてごめんなさい。)
すごく頑張れば、近似値評価をして一番近いものをってできるかもしれませんが、そこまでやるなら素直にOCRの精度を上げる努力をしたほうが近道な気がします。
 
どうしても文字列の近似値評価に興味があれば「レーベンシュタイン距離」等で検索されるとよいかもです。
 
なお、私だったら件数にもよりますが、とりあえず一覧表シートに一通りデータ張り付けてから、ソートかけて変なデータは手動で直しますかね・・・
幸いにして、改行を外したり、アルファベットは排除するなどは関数で対応することが可能ですので・・・
 
 
 

回答
投稿日時: 17/12/01 11:00:17
投稿者: WinArrow
投稿者のウェブサイトに移動

名刺印刷は、使う人のすべての使い方まで考えていないから
OCRデータを手作業で修正する必要がありますね・・・

回答
投稿日時: 17/12/01 21:34:00
投稿者: んなっと

一般機能では無理だと思います。
下の方法も重くて使いものになりません。
 
●Sheet2 に企業名と担当者
 
                 A   B
 1           日立製作所 山田
 2            三菱電機 山田
 3          パナソニック 山田
 4             ソニー 山田
 5             TDK 山田
 6            デンソー 山田
 7           ファナック 斉藤
 8             京セラ 斉藤
 9           村田製作所 斉藤
10            キヤノン 斉藤
11           日産自動車 斉藤
12          トヨタ自動車 斉藤
13          本田技研工業 斉藤
14             ニコン 斉藤
15            ピジョン 斉藤
16           伊藤忠商事 斉藤
17              丸紅 斉藤
18            三井物産 斉藤
19            三井商事 鈴木
20            住友商事 鈴木
21            三菱商事 鈴木
22         ユニ・チャーム 鈴木
23 セブン&アイ・ホールディングス 鈴木
24            良品計画 鈴木
25             イオン 鈴木
 
●Sheet1
 
            A        B      C  D  E  F  G  H   I   J   K
 1   三井物彦株式会社    三井物産  三井商事 物 井 三     4.01 2.02 1.03
 2  三井・商事株式会社    三井商事  三菱商事 井 ・ 三 商 事 4.01 2.02 2.03
 3  三井商事┛株式会社    三井商事  三菱商事 井 三 商 事   4.01 2.02 4.03
 4  三井商事株式会社mit    三井商事  三菱商事 井 三 商 事   4.01 2.02 4.03
 5   三丼商事株式会社    三菱商事  三井商事 三 商 事     4.01    4.03
 6  株式会社目立製作所   日立製作所 村田製作所 立 製 作 所           
 7   (株)日立-_作所   日立製作所 村田製作所 立 日 作 所           
 8    伊藤志商事(株)   伊藤忠商事  三菱商事 伊 藤 商 事   1.01 1.02   
 9 イ尹藤忠商事株式会社   伊藤忠商事  三菱商事 藤 忠 イ 商 事 2.01    1.03
10     ユニ.テヤ-ム ユニ・チャーム   ニコン ユ ヤ ム ニ   1.01 4.02   
11   往友筒事株式会社    住友商事  三菱商事 友 事          1.02   
 
B1
=INDEX(Sheet2!$A:$A,MOD(AGGREGATE(14,6,ISNUMBER(FIND($D1,Sheet2!$A$1:$A$300))+ISNUMBER(FIND($E1,Sheet2!$A$1:$A$300))+ISNUMBER(FIND($F1,Sheet2!$A$1:$A$300))+ISNUMBER(FIND($G1,Sheet2!$A$1:$A$300))+ISNUMBER(FIND($H1,Sheet2!$A$1:$A$300))+ROW($1:$300)/1000,COLUMN(A1))*1000,1000))&""
右方向・→C1まで 下方向・↓
D1
=IFERROR(MID($A1,RIGHT(AGGREGATE(15,6,$I1:$Z1*1,COLUMN(A1)),2),1),"")
右方向・→H1まで 下方向・↓
I1
=IF(COLUMN(A1)>LEN($A1),"",TEXT(COUNTIF(Sheet2!$A$1:$A$300,"*"&MID($A1,COLUMN(A1),1)&"*"),"0."&TEXT(COLUMN(A1),"00")&";;;"))
右方向・→Z1まで 下方向・↓
 
三丼商事が第二候補のC列でようやく正解。

投稿日時: 17/12/02 11:49:02
投稿者: YU0001

もこな2さん
WinArrowさん
んなっとさん
 
皆様、わかりづらい説明ながらご丁寧な回答をいただきありがとうございます。
名刺の写真をとってデータ化するツールがあり、そこからダウンロードして名刺の情報を使います。
一発で出すのは難しそうですね。
 
んなっとさんの式の意味はわからないのですが、会社のデータが8000件くらいあるので
確かに重くなりそうですね。できたらそれはそれですごいですね!
 
月曜日に作業の続きをしますが、やはり1件ずつ手で直す作業にはなりそうです。
ありがとうございました。