0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ROUNDUP関数の出力をMATCH関数に食わせるとところどころ#N/Aになる問題の検証 & 実務上の打開策【Excel関数】

Last updated at Posted at 2022-01-29

発端

以前、こんなものを作ったのですが、

image.png

感覚的ブラックボックス問題(参照後にFORCAST.LINEARで線形補間)からDB側を1%刻みにギチギチに作り込んで完全一致MATCHにしようということに...

ところが実務上で謎の挙動が...

21%という値を食わせたら#N/Aになる

Double型の仮数部...?

PCの仕組みレベルの話?

検証

ROUNDUP:ところどころ#N/Aになる

image.png

#N/Aになるリスト

image.png

この数列に何の法則が?

#N/A軍団
0.94
0.82
0.69
0.57
0.47
0.41
0.35
0.29
0.24
0.21
0.18
0.15
0.1
0.07
0.06

ROUND:無問題

image.png

ROUNDDOWN:無問題

image.png

#N/Aが出た部分を深堀り

値貼り付けして比較:ROUNDUPの出力は依然として#N/A

image.png

引き算して比較:差を検出できず

image.png

IF比較:差を検出できず

image.png

【実務上の打開策】 ROUNDUP後に再度ROUND系で整形すると#N/Aが消える

ROUND

image.png

ROUNDDOWN

image.png

ROUNDUP 何故かNGの関数で挟んでも#N/Aが消えた

image.png

【余談】オートフィルで値が変になる問題

上の比較ではこの変な現象は修正したものを使っていますが、100%から順に表をつくる際、オートフィルを使うと途中で値が変になる現象もあるのでこちらも紹介

image.png

43%から変になる

image.png
image.png

途中から始めると変になる箇所が移動する

image.png

STARTを1行目とすると58行目からおかしくなる
image.png

まとめ

食わせる関数ごとのMATCH関数の挙動

関数 結果
ROUND OK
ROUNDUP ところどころ#N/Aになる
ROUNDDOWN OK

ROUNDUP後にもう1回整形してからMATCHに食わせる【実務上の打開策】

本質的なところはDouble型の仮数部だのPCの仕組みだの環境要因なのでお手上げとしても、実務上の打開策としてはMATCH関数が食べられる形に咀嚼するためだけにもう1回ROUND系関数を挟めば解決できそうです。

関数 結果
ROUND OK
ROUNDUP OK
ROUNDDOWN OK

image.png

ちなみにTEXT関数だと参照先・参照元の桁数をすべて完璧に揃える必要があり、フレキシブルに動けなくなるのであまり取りたくない手です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?