Excel (一般機能)

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

 
(Windows 11全般 : Excel 2019)
Match関数で重複チェック
投稿日時: 24/01/08 07:12:44
投稿者: えあろん

文字列の20桁の番号をMatch関数で重複チェックしていたのですが
明らかに異なる番号であるのに重複とカウントされた番号がいくつありました。
番号を数値に変換してみたところ最後5桁が00000になり
最初の15桁が同一のものが重複とカウントされていました。
これを回避するにはどうすればいいのでしょうか?
 
文字列
@123456789012345
A123456789054321
 
数値   ↓
@123456789000000
A123456789000000
 
 
 

回答
投稿日時: 24/01/08 07:36:11
投稿者: 半平太

>文字列の20桁の番号をMatch関数で重複チェックしていたのですが
>明らかに異なる番号であるのに重複とカウントされた番号がいくつありました。
 
はて? 
一体、どんな数式で判定したのですか。

回答
投稿日時: 24/01/08 11:21:27
投稿者: WinArrow

文字列の20桁の番号
をどのようにして「数値」にしたのでしょうか?
  
例えば
=Aq*1
=A1+0
=NUMBERVALUE(A1)
のような数式で変換すると
浮動小数点数表示になると思いますが・・・・・
  
少なくとも15桁を超える数字は、数値化できませんが・・・
  
それから、Match関数では重複チェックはできないと思います。

回答
投稿日時: 24/01/08 11:40:49
投稿者: WinArrow

追加レス
  
説明に書かれているデータは15桁ですよね?
  
例題違いでしょうか?

回答
投稿日時: 24/01/08 16:10:51
投稿者: WinArrow

数値化の方法が分かりました。
 
 
セルA1(表示形式:標準)に
12345678901234567890
と20桁の数字を入力します。
表示は
1.234567E+18
となるはずです。(浮動小数点)
そこで、表示形式をユーザー定義で「0」に設定すると、
1234567890123450000
に変更されます。
確かに数値として認識されますが、
15桁を超える部分は、カットされて「00000」と表示されます。
これは、数値として扱う桁数が、15桁以内という仕様になっているからです。
 
対策としては、
事前(入力する前)に、列範囲で、表示形式を「文字列」に設定しておく必要があります。
そうすれば、入力した桁数だけ表示されます。
勿論、数値ではなく、文字列として処理することになります。
 
 
 

投稿日時: 24/01/09 20:35:30
投稿者: えあろん

WinArrow さんの引用:
数値化の方法が分かりました。
 
 
セルA1(表示形式:標準)に
12345678901234567890
と20桁の数字を入力します。
表示は
1.234567E+18
となるはずです。(浮動小数点)
そこで、表示形式をユーザー定義で「0」に設定すると、
1234567890123450000
に変更されます。
確かに数値として認識されますが、
15桁を超える部分は、カットされて「00000」と表示されます。
これは、数値として扱う桁数が、15桁以内という仕様になっているからです。
 
対策としては、
事前(入力する前)に、列範囲で、表示形式を「文字列」に設定しておく必要があります。
そうすれば、入力した桁数だけ表示されます。
勿論、数値ではなく、文字列として処理することになります。
 
 
 

 
WinArrowさん
返信ありがとうございます。
遅くなり申し訳ございません。
やはり文字列設定しておく必要がありますよね。
取引先から添付されたデータで文字列と数値が混在して
いるようでした。
ありがとうございます!