- ベストアンサー
エクセルの入力規則で困っています。
エクセルの入力規則で困っています。 バーコードで入力したデータ9桁の数字を8桁 に変更して入力規則でリスト参照を行い 間違いを表示したいのですがうまく行きません。 マクロでLeftを使って横の行に出力してその 行で入力規則で比較しても入力規則が動かないです。 簡単な方法はないでしょうか? 入力データ 変更データ 比較したいデータ 123456789 12345678 12345678 入力データの下1桁を消して比較したいです。 補足 入力データは400個 比較データ20000個あります。 マクロは初心者です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
入力規則はあくまでも手で直接に入力する場合に機能するもので関数を使って入力された値には適用できません。 変更データが比較したいデータと一致しない場合にはセルを赤色などにして区別できるようにするのがよいでしょう。 例えばA列にはバーコードからの9ケタの数値が入力されているとしたら、B列には8ケタの数値を表示させるとしたらB1セルには次の式を入力して下方にドラッグコピーします。 =IF(A1="","",LEFT(A1,8)*1) そこで比較したいデータが例えばE列に並んでいるとします。 B列でE列のデータと一致していない数値が有る場合にはセルの色を赤色にするのでしたらB列を初めに選択します。 その後に「ホーム」タブの「条件付き書式」で「新しいルール」をクリックします。 「数式を使用して書式設定するセルを決定」を選択してから数式の窓には =AND(B1<>"",COUNTIF(E:E,B1)=0) を入力します。「書式」をクリックして「塗りつぶし」のタブで赤色を指定してOKします。 なお、B1セルには項目名などが有る場合にはB2セルから下方を選択してから条件付き書式を設定しますが、その場合の式は =AND(B2<>"",COUNTIF(E:E,B2)=0) とします。 マクロを使ったからといって同じようなことを行うことになるでしょう。一致しないからといってバーコードのデータが悪いという警告を出させることになるまでのことのように思いますね。条件付き書式で赤色表示にすることと大きな変化はないように思います。
その他の回答 (2)
- cma3atgoo
- ベストアンサー率35% (32/90)
入力規則ではないけれど A1 9桁コード B1 入力データ C1 =IF(LEFT(TRIM(A1),8)=TRIM(B1),0,1) 間違ったデータはCに1が立つ C列でオートフィルタすれば間違ったものだけ表示できる
お礼
早い対応ありがとうございました。 また、宜しくお願いします。
- gisahann
- ベストアンサー率37% (973/2616)
マクロの記述はわかりかねますが、 ・左8個を読み出す=先に数字を文字化する必要があると思います。 ・あるいは、数字のままなら10で割って小数点以下を切り捨ててから比較するとか うまくいくといいですね。
お礼
早い対応ありがとうございました。 また、宜しくお願いします。
お礼
ありがとうございます。 入力規則は関数やマクロで表示したデータでは 使えないのですね。 勉強になりました。 出来れば一時停止して 作業を止めたかったのですが 助かりましたありがとうございました。