数値(小数部あり)の整数部、小数部の桁数チェックの方法について
2019-08-01 14:25
整数部6桁、小数部5桁などの入力チェックを行いたいのですが、
関数は様々ありますが、みなさんはどのような方法で整数部桁数、小数部桁数を抽出しておりますでしょうか。
また、バージョンに依存した現象かもしれませんが、数値をLEN()、LENB()を行った際に異なる値を返します。
LEN(数値7桁)=7 ・・・OK
LENB(数値7桁)=4 ・・・NG Excelでは7と返却します。
何か情報がありましたら、ご教示ください。
回答を投稿するにはログインが必要です。
日本コンピュータシステム(CELFチーム)
パートナー
はじめまして。
入力チェックであれば、正規表現を使った方法があるようです。
例)-999.99~999.99の実数をチェック
式)=UTIL.REGEXP("^[+-]?[0-9]{1,3}.[0-9]{1,2}$",A1)
※A1は評価する値の入った座標
※正規表現の利用方法については「正規表現 正負実数チェック」などで検索すると出てきます。
入力チェックであれば、正規表現を使った方法があるようです。
例)-999.99~999.99の実数をチェック
式)=UTIL.REGEXP("^[+-]?[0-9]{1,3}.[0-9]{1,2}$",A1)
※A1は評価する値の入った座標
※正規表現の利用方法については「正規表現 正負実数チェック」などで検索すると出てきます。
整数小数のことではなくてLENBのことなのですが、
LENBって、Excelのワークシート関数とVBで使うときとではちょっと種類が違って
VBのときは、LENB(ここに入れる)の入れるものがString型ではない場合
「変数の文字数」を返しているわけではなくて、そのデータ型の大きさをバイト数で返します。
数値(Long型とSingle型)の場合は4バイトです。
つまり、CELFもそういうことなのではないでしょうか。
「33555.779」をCELFで見ると
「4」というのがLENBで
「18」というのがLENです。
VBAのLENBだったら、「33555.779」をString型にしたら、文字を全部2バイトで数えるので、この場合18になるのですが
CELFのここのあたりってどのような仕様になっているのかが私もよくわからないです……。Excelワークシート関数ともVBAとも挙動が違うし……。ヘルプにも書いてありませんし……。
《ご参考》
LEN 関数、LENB 関数
https://support.office.com/ja-jp/article/LEN-関数、LENB-関数-29236f94-cedc-429d-affd-b5e33d2c67cb
Len 関数(Office VBA)
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/len-function
CELFはsikuliで動いているようなのでPython関係あるのかなと思い一応こちらも
len(Python)
https://docs.python.org/ja/3/library/functions.html#len
LENBって、Excelのワークシート関数とVBで使うときとではちょっと種類が違って
VBのときは、LENB(ここに入れる)の入れるものがString型ではない場合
「変数の文字数」を返しているわけではなくて、そのデータ型の大きさをバイト数で返します。
数値(Long型とSingle型)の場合は4バイトです。
つまり、CELFもそういうことなのではないでしょうか。
「33555.779」をCELFで見ると
「4」というのがLENBで
「18」というのがLENです。
VBAのLENBだったら、「33555.779」をString型にしたら、文字を全部2バイトで数えるので、この場合18になるのですが
CELFのここのあたりってどのような仕様になっているのかが私もよくわからないです……。Excelワークシート関数ともVBAとも挙動が違うし……。ヘルプにも書いてありませんし……。
《ご参考》
LEN 関数、LENB 関数
https://support.office.com/ja-jp/article/LEN-関数、LENB-関数-29236f94-cedc-429d-affd-b5e33d2c67cb
Len 関数(Office VBA)
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/len-function
CELFはsikuliで動いているようなのでPython関係あるのかなと思い一応こちらも
len(Python)
https://docs.python.org/ja/3/library/functions.html#len