0

ExcelMATCH関数を使用していますが、 が変更されていない数値の場合は機能しますが、 が計算された数値の lookup_value場合は常に機能するとは限りません。lookup_value

もう少し詳しく言うと:

私のスプレッドシートは、粒子サイズの推奨値を使用するかどうかをユーザーに尋ねることができます。" " を選択Noすると、独自の値を入力するオプションが表示されます。彼女は、インペリアル単位またはメートル単位で値を入力できます。インペリアル入力用のセルとメトリック入力用のセルがあります。(彼女はどちらを記入するかを選択できます)。

最終的にはすべての計算を帝国単位で行う必要があるため、最終的な粒子サイズ ボックスはユーザーが指定した値を取得し、元の値を保持するか (帝国単位で入力された場合)、元の帝国単位に変換します (帝国単位で入力された場合)。メトリック)。これは、次の式を使用して行います。

=IF(AND(S24="No",U25=""),S25,IF(AND(S24="No",U25<>""),U25/25.4,S23))

推奨S24値を使用するかどうかの決定をU25保持し、メトリック入力をS25保持し、インペリアル入力をS23保持し、推奨値を保持します。変換は mm から in です。

最終的な粒子サイズは、別のシートによって呼び出され、MATCH関数で使用されます。メトリクス入力セルに (ドロップダウン メニューから) 特定の入力値を指定する#N/Aと、関数からエラーが発生しMATCHます。

不要なスペースを削除し、関連するすべてのセルを小数点以下 3 桁の数値にフォーマットし、メトリックからインペリアルへの変換をlookup_valueセルに直接入力しようとしました (たとえば、最終的な粒子サイズを取得する代わりに、lookup_value セルに次のように入力しました。しかし、それでも 0.375 を見つけることができませんでしたlookup_array)

=9.525/25.4

各帝国値に 25.4 を掛けてからその値を 25.4 で除算するだけの変換であるにもかかわらず、MATCH関数が一部でのみ機能する理由を知っている人はいますか?lookup_values

4

1 に答える 1

1

The Match() function has one important parameter: the last one. It is either 0 or 1. If it is 0, then Match will find only an EXACT match. In your scenario, when you convert numbers between different systems, the resulting number may not be an exact match.

You may want to use rounding or other techniques to ensure that the first parameter of the Match() function is indeed in the list of values that you feed into the Match function.

Formatting to a specific number of decimals is not good enough. The number Match is looking for must be an exact match in VALUE, not in looks.

You may want to apply rounding instead of formatting for better results.

This is as much as I can say without seeing a data sample. Edit your question and include a file (or a link to a file on a public sharing site). Then I can get more specific.

于 2015-02-09T08:28:48.103 に答える