[[20190622133441]] 『Vlookupを利用してコードの入力ミスを見つけたい』(びわ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Vlookupを利用してコードの入力ミスを見つけたい』(びわ)

過去の注文実績の中にある部品のコードデータから規格コードに適合しないものを抽出したいです。

規格コードでは部品コードに空白スペースが3つ必要なのですが,入力ミスで2つしかないものもあります。Vlookupとワイルドカードを利用してエラーを抽出しようとしたのですが全てN/Aとなってしまいます。

規格コードはK0M11X11 AAという形で
・「11」は01〜20の数字,
・スペースは空白3つor空白2つ+R(K0M11X11 RAA)
・「AA」はAA〜ZZの文字列
といった形です。

A列には
K0M14X20 GU(0とGの間に空白3つ)
K0M14X20 GU(0とGの間に空白2つ)
K0M18X20 GG(0とGの間に空白3つ)
K0M18X20 RGG(0とRの間に空白2つ)
という過去注文実績データが入力されており

Vlookup関数を以下のように設定し
=VLOOKUP(A1,K0M##X## ??,1,0)

規格コードに沿っていないものを抽出したかったのですが,
すべてN/Aになってしまいます。

どのようなワイルドカードを検索範囲に設定すればよろしいでしょうか?

< 使用 Excel:Office365、使用 OS:Windows10 >


 >規格コードに沿っていないものを抽出したかったのですが,

 どう言う結果にすれば、抽出したことになるんですか? 

(半平太) 2019/06/22(土) 14:44


半平太さん

規格コードに合わないものをN/Aとして抽出したいです。
(びわ) 2019/06/22(土) 15:09


半平太さん

(追記)
現在は正しいコードもN/Aという表示になってしまいます。

理想では正しいコードに関しては検索値と同じ文字列を表示したいのですが。
(びわ) 2019/06/22(土) 15:13


 すると、これでいいんですかね?(半角スペースが3つあるデータかどうか)

 B1セル =VLOOKUP("*   *",A1,1,FALSE)
 下にコピー

 <結果図>
  行  ______A______  ______B______
   1  K0M14X20   GU  K0M14X20   GU
   2  K0M14X20  GU   #N/A         
   3  K0M18X20   GG  K0M18X20   GG
   4  K0M18X20  RGG  #N/A     

(半平太) 2019/06/22(土) 15:17


 >B1セル =VLOOKUP("*   *",A1,1,FALSE)

 あれ? 4つ以上あってもOKになっちゃうなー(取り敢えず反応待ち)

(半平太) 2019/06/22(土) 15:21


 B1セル =IF(ISNUMBER(FIND("    ",A1)),NA(),VLOOKUP("*   *",A1,1,FALSE))

 これで4つ以上は強制的にNA()にすればよさそう。

(半平太) 2019/06/22(土) 15:32


>入力ミスで2つしかないものもあります。
>・スペースは空白3つor空白2つ+R(K0M11X11 RAA)

これも入力ミスとして抽出するんですかね。

気になった一言でした。

(のりん) 2019/06/22(土) 16:32


>現在は正しいコードもN/Aという表示になってしまいます。
   ↓
>=VLOOKUP(A1,K0M##X## ??,1,0)

のことを指しているのだろうか。
そうだとすると引数の指定が間違っている
表にはない検索値を指定している。

違っていたらすみません。
(PPM) 2019/06/22(土) 16:42


回答ではありません。

スペースの数の間違いだけなら
数式で修正できませんか
=LEFT(A1,8)&" "&RIGHT(A1,3)

(マナ) 2019/06/22(土) 16:50


あるいは、入力をセルを分けて行い数式で結合させると
間違いは格段に減ると思うのですが。

(マナ) 2019/06/22(土) 16:56


 >>・スペースは空白3つor空白2つ+R(K0M11X11 RAA) 
 >これも入力ミスとして抽出するんですかね。

  なるほどです。2個でも良い場合がある訳ですね。

 >=VLOOKUP(A1,K0M##X## ??,1,0) 
 数式自体は間違いだが、その数式から推測すると
 相当な範囲の部分は決め打ちでいいのかも知れない。

 これでイケそう。
 ↓
 B1セル =REPT(A1,LOOKUP(2,MATCH("K0M??X??  "&{" ??","R??"},A1,0)))

     下にコピー

 <結果図>
 行  _______A_______  ______B______
  1  K0M14X20   GU    K0M14X20   GU
  2  K0M14X20  GU     #N/A         
  3  K0M18X20   GG    K0M18X20   GG
  4  K0M18X20  RGG    K0M18X20  RGG
  5  K0M14X20    GU   #N/A         

(半平太) 2019/06/22(土) 16:57


>>半平太さん
ご教示いただいた
=REPT(A1,LOOKUP(2,MATCH("K0M??X?? "&{" ??","R??"},A1,0))) を利用したところ,
「スペース2つor4などの場合はエラー」「スペースが空白3つor空白2つ+R(K0M11X11 RAA)はTRUE」
を判別することができました。ありがとうございます。

関数に関しては利用したことがないものでしたので,調べた上で不明点を後日再度質問させていただきたいです。

>>PPMさん
ご指摘ありがとうございます。Excelを本格的に使った経験がないので色々間違えてると思います。頑張って勉強します。

>>マナさん
当方メーカーの資材調達部に配属された新入社員なのですが,部品のコードの入力自体は設計が行っています。設計が部品コードを入力するのはExcelではなく社内システムでして,スペースの数が規格コードに適合していなくても入力できる様です。(-_-;)

現在は設計が社内システムに入力した部品コードを発注する段階で規格コードに適合していないと気づいたら資材調達部が逐次修正しているのですが,結構時間がかかる作業なので,どうにかして効率化できないかと思っていまして。発注した部品データは社内システムからCSV形式でダウンロードできるので,そのデータをもとに規格コードと違うものを抽出しようとして,今の作業を行っているのです。

(びわ) 2019/06/22(土) 21:15


>規格コードはK0M11X11 AAという形で
>・スペースは空白3つor空白2つ+R(K0M11X11 RAA)

でいくと文字数は 13 に固定されているので

=IF(LEN(A1)=13,A1,"規格コード外")

ではどうですか。

(のりん) 2019/06/22(土) 21:38


追記

K0M14X20 GU     K0M14X20 GU
#N/A        規格コード外
K0M18X20 GG     K0M18X20 GG
K0M18X20 RGG     K0M18X20 RGG

を添付するのを忘れてました。
(のりん) 2019/06/22(土) 21:46


 >後日再度質問させていただきたいです。 

 聞かれると多分しんどい事になるので、
 TRUEかORでよければ、下式でやってください。

 B1セル =OR(ISNUMBER(MATCH("K0M??X??   ??",A1,0)),ISNUMBER(MATCH("K0M??X??  R??",A1,0)))

 <結果図>
 行  _______A_______  __B__
  1  K0M14X20   GU    TRUE 
  2  K0M14X20  GU     FALSE
  3  K0M18X20   GG    TRUE 
  4  K0M18X20  RGG    TRUE 
  5  K0M14X20    GU   FALSE

(半平太) 2019/06/22(土) 22:45


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.