3

HLOOKUPSを使用したときに期待どおりに機能しないExcelスプレッドシート(​​スプレッドシートギアによって生成されますが、Excelの問題です)があります。単純なHLOOKUPを使用して、テーブル内の特定のパーセントで値を検索します。2つの特定の値について、HLOOKUPは失敗します。これらの値は0.9993と0.999です。このExcelドキュメントは、問題を示しています:http: //dsokol.com/tokio/excelna.xlsx。セルC6とC7は、BとCを入力することを目的としている場合、N / Aとして表示されます。値を再入力すると、HLOOKUPが再び機能し始めます。

なぜこれが起こっているのか誰かが説明できますか?

4

2 に答える 2

5

問題は、これらの数値が整数ではなく文字列として格納されていることです。SpreadSheetGearで列型を明示的に宣言する必要があると思います。

xlsxファイルをzipファイルとして開き、値を上書きする前後にフォルダーSheet1.xmlから抽出する場合、任意のdiffツール(たとえば、winmergeがこれを明らかにします)。xl\WorkSheets

この要点にXMLの違いを投稿しました。

于 2012-10-02T18:00:31.013 に答える
2

バリーに同意します。この問題は、それらが数字であるか文字列であるか(すべて数字であるかどうか)とは関係ありません。これは、浮動小数点数を2進数で格納する際の制限のようです-ここで説明されているように:http ://support.microsoft.com/kb/214118

MicrosoftExcelとMicrosoftWorksの浮動小数点数に対する算術演算の多くの組み合わせにより、ごくわずかに不正確に見える結果が生成される場合があります。たとえば、方程式= 1 *(。5-.4-。1)は、数量(-2.78E-17)、または0ではなく-0.0000000000000000278に評価されます。

この問題は、Excelに固有のものではなく、次の結果として発生します。

IEEE 754は、ストレージ要件を減らし、すべてのマイクロプロセッサで使用可能な組み込みのバイナリ算術命令が比較的高速にデータを処理できるようにするために、数値をバイナリ形式で格納することを指定しています。ただし、単純で繰り返しのない10進数の一部の数値は、完全な精度で格納できない繰り返しの2進数に変換されます。

この現象は、ここ「算術的平等」に見られます。

興味深い問題

繰り返しますが、これはExcelに固有の問題ではありません。

この動作は、ExcelまたはWorksの問題または制限ではありません。この動作は、米国電気電子学会(IEEE)754浮動小数点標準で数値を2進形式で格納する必要があるために発生します。

幸運を。

于 2012-10-02T20:45:51.643 に答える