Excel データの丸め

Excel に組み込まれた丸めツールを使用すると、計算結果が正しくないように見える場合があります。これは、Excel が各セルの値を個別にしか考慮できないためです。thinkcell の Excel データ丸め機能は、計算を全体として考慮し、数学的に可能な場合には丸めた値を使用して計算の整合性を保ちながら、正確な値からの偏差が最小になるように丸めます。

thinkcell round の概要

レポートやPowerPointプレゼンテーション用にデータをまとめる際、Excelで合計を丸める処理はよく問題になります。丸めた合計が、丸めた加数の合計と正確に一致することが望ましい場合が多いものの、実現は容易ではありません。たとえば、次の表をご覧ください。

Excelでの正確な値の例

Excelのセルの書式設定機能を使用して値を整数に丸めると、次の表のようになります。「計算ミス」に見える合計は太字で示されています。

Excel’s Format-Cell機能を使用した丸め

同様に、Excelの標準の丸め関数を使用すると、丸めた値の合計は正しく計算されますが、丸め誤差が累積し、結果が元の値の実際の合計から大きくずれることがよくあります。次の表は、上記の例に対して=ROUND(x,0)を使用した結果を示しています。元の値から1以上ずれている合計は太字で示されています。

Excel関数ROUNDの使用例

thinkcell roundを使用すると、最小限の「調整」で一貫性のある丸め合計を実現できます。ほとんどの値は最も近い整数に丸められますが、一部の値は反対方向に丸められるため、丸め誤差を累積させることなく、正しい計算を維持できます。値を変更して正しく丸められた合計を実現する方法は多数あるため、ソフトウェアは、変更する値の数が最も少なく、正確な値からのずれが最小になる解を選択します。たとえば、10.5を10に切り下げる方が、3.7を3に切り下げるより望ましいと判断されます。次の表は、上記の例に対する最適な解を示しており、「調整」された値は太字で示されています。

thinkcell roundの例

ご自身の計算でこの出力を得るには、該当するExcelセル範囲を選択するだけです。次に、Formulasタブの image ボタンをクリックし、必要に応じてツールバーのドロップダウンボックスで丸め精度を調整します。

thinkcell roundを使用する

thinkcell roundはMicrosoft Excelにシームレスに統合され、Excelの標準の丸め関数に似た一連の関数を提供します。Formulasタブにあるthinkcell roundリボングループを使用して、これらの関数をご自身のデータに簡単に適用できます。

Excel 2010以降のthinkcell roundリボン

丸めパラメーター

Excel関数と同様に、thinkcellの丸め関数は2つのパラメーターを取ります。

x

丸める値です。定数、数式、または別のセルへの参照を指定できます。

n

丸め精度です。このパラメーターの意味は、使用する関数によって異なります。thinkcell関数のパラメーターは、対応するExcel関数と同じです。例については、以下の表を参照してください。

thinkcell roundは整数値だけでなく、任意の倍数に丸めることができます。たとえば、データを5-10-15-...の刻みで表したい場合は、5の倍数に丸めるだけです。thinkcell roundツールバーのドロップダウンボックスを使用して、希望する丸め精度を入力または選択します。thinkcell roundが適切な関数とパラメーターを選択します。次の表は、ツールバーを使用して特定のx値を丸める例と、それぞれのnパラメーターを示しています。

x =n =

100

50

2

1

0.01

1.018

0

0

2

1

1.02

17

0

0

18

17

17.00

54.6

100

50

54

55

54.60

1234.1234

1200

1250

1234

1234

1234.12

8776.54321

8800

8800

8776

8777

8776.54

値が期待どおりに表示されない場合は、Excelのセルの書式設定がGeneralに設定されており、すべての小数桁を表示できるだけの列幅があることを確認してください。

ボタン

数式

説明

image

TCROUND(x, n)

丸め誤差を最小化するため、最も近い2つの倍数のどちらに丸めるかをthinkcell roundに判断させます。

image

TCROUNDUP(x, n)

xをゼロから遠ざかる方向に丸めるよう強制します。

image

TCROUNDDOWN(x, n)

xをゼロに近づく方向に丸めるよう強制します。

image

TCROUNDNEAR(x, n)

xを希望する精度の最も近い倍数に丸めるよう強制します。

image

選択したセルからすべてのthinkcell round関数を削除します。

image

希望する丸めの倍数を選択または入力します。

image

thinkcellが、最も近い倍数ではなく、最も近い2つの倍数のうち遠い方に丸めると判断したすべてのセルを強調表示します。

基礎となる値からのずれをできるだけ小さくして最適な結果を得るには、可能な限りTCROUNDを使用してください。TCROUNDDOWN、TCROUNDUP、TCROUNDNEARなど、より制約の強い関数は、必要な場合にのみ使用してください。

注意: TCROUND数式内では、RAND()のような非決定的関数を決して使用しないでください。評価されるたびに異なる値を返す関数があると、thinkcell roundは値の計算を誤る可能性があります。

計算のレイアウト

上記の例の長方形レイアウトは、説明のためのものにすぎません。TCROUND関数を使用すると、Excelシート全体に分散した任意の合計の表示を決定できます。Excelの他のシートへの3-D参照や、他のファイルへのリンクにも対応しています。

TCROUND関数の配置

TCROUND関数はセルの出力を制御することを目的としているため、最も外側の関数である必要があります。

悪い例:

=TCROUND(A1, 1)+TCROUND(SUM(B1:E1), 1)

良い例:

=TCROUND(A1+SUM(B1:E1), 1)

悪い例:

=3*TCROUNDDOWN(A1, 1)

良い例:

=TCROUNDDOWN(3*A1, 1)

悪い例のような入力をした場合、thinkcell roundはExcelのエラー値#VALUE!で通知します。

thinkcell roundの制限事項

thinkcell roundは、小計と合計を含む任意の合計に対して常に解を見つけます。また、乗算や数値関数を含むその他の計算の一部についても、適切な解を提供します。ただし、数学的な理由により、+、-、SUM以外の演算子が使用されると、一貫して丸められた解の存在は保証できません。

定数との乗算

多くの場合、定数乗算が含まれる場合、つまり係数のうち多くても1つだけが別のTCROUND関数の結果から導かれる場合、thinkcell roundは良好な結果を生成します。次の例をご覧ください。

thinkcell roundでの定数との乗算

セルC1の正確な計算は3×1.3+1.4=5.3です。この結果は、値1.4を2に切り上げることで満たすことができます。

thinkcell round(TCROUND)による丸めの例

ただし、thinkcell roundが「調整」できるのは、切り上げまたは切り下げによる丸めのみです。元の値からさらにずらすことはサポートされていません。そのため、入力値の特定の組み合わせでは、一貫して丸められた解が見つからない場合があります。この場合、関数TCROUNDはExcelのエラー値#NUM!として評価されます。次の例は、解決できない問題を示しています。

thinkcell roundでの一貫性のない丸め

セルC1の正確な計算は6×1.3+1.4=9.2です。セルA1とB1を丸めると、6×1+2=8または6×2+1=13になります。実際の結果9.2は8または13に丸めることができず、thinkcell roundの出力は次のようになります。

thinkcell roundでの#NUM!エラー

注: Excel関数AVERAGEは、thinkcell roundでは合計と定数乗算の組み合わせとして解釈されます。また、同じ加数が複数回現れる合計は、数学的には定数乗算と等価であり、解の存在は保証されません。

一般的な乗算とその他の関数

関連するすべてのセルでTCROUND関数が使用され、中間結果が+、-、SUM、AVERAGEのみで接続されている限り、加数と(中間)合計は単一の丸め問題に統合されます。このような場合、解が存在すれば、thinkcell roundは関係するすべてのセルで一貫性を提供する解を見つけます。

TCROUNDは通常のExcel関数であるため、任意の関数や演算子と組み合わせることができます。ただし、TCROUNDステートメントの結果を接続するために上記以外の関数を使用すると、thinkcell roundは各コンポーネントを1つの相互に関連した問題として統合できません。代わりに、数式の各コンポーネントは別個の問題として扱われ、独立して解決されます。その結果が、他の数式への入力として使用されます。

多くの場合、thinkcell roundの出力はそれでも妥当なものになります。ただし、+、-、SUM、AVERAGE以外の演算子を使用すると、丸められた結果が丸めていない計算結果から大きく外れる場合があります。次の例をご覧ください。

不適切な数式使用による丸めの影響

この場合、セルC1の正確な計算は8.7×1.7=14.79になります。セルA1とセルB1が乗算で接続されているため、thinkcell roundはこれらのセルの数式を共通の問題に統合できません。代わりに、セルA1を有効な入力として検出した後、セルB1は独立して評価され、その出力は残りの問題内で定数として扱われます。追加の制約がないため、セルB1の値1.7は最も近い整数である2に丸められます。

この時点で、セルC1の「正確な」計算は8.7×2=17.4になります。これが、thinkcell roundがここで解決しようとする問題です。17.4を18に切り上げる必要がある一貫した解が存在します。結果は次のようになります。

thinkcell roundを使用した丸めと乗算

セルC1の丸め値である18は、元の値14.79とは大きく異なることに注意してください。

TCROUND数式のトラブルシューティング

thinkcell roundを使用する際に発生する可能性のあるエラー結果は、#VALUE!と#NUM!の2つです。

#VALUE!

#VALUE! エラーは、数式の入力ミスや不正なパラメーターなど、構文上の問題を示します。また、正しい区切り記号を使用しているかにも注意してください。たとえば、英語版 Excel では数式は =TCROUND(1.7, 0) のようになりますが、ローカライズされたドイツ語版 Excel では =TCROUND(1,7; 0) と記述する必要があります。

thinkcell round に固有のもう 1 つの誤りは、TCROUND 関数呼び出しの配置です。別の数式の中で TCROUND 関数を使用することはできません。TCROUND がセルの数式の最も外側の関数になっていることを確認してください。(TCROUND 関数の配置 を参照)

#NUM!

#NUM! エラーは数値上の問題によって発生します。TCROUND 関数の出力が #NUM! の場合、指定された一連の数式で表された問題が数学的に解けないことを意味します。(thinkcell roundの制限事項 を参照)

TCROUND 関数で囲まれた数式に +、-、SUM のみが含まれ、すべての TCROUND 文が同じ精度(第 2 パラメーター)を共有している限り、解は必ず存在し、thinkcell round によって見つけられます。ただし、次の場合は、一貫して丸められた解が存在する保証はありません。

  • 数式に乗算や数値関数などの他の演算が含まれている場合。また、同じ加数が複数回現れる合計は、数学的には乗算と同等です。
  • TCROUND 関数の第 2 パラメーターで異なる精度を使用している場合。
  • 特定の関数 TCROUNDDOWN、TCROUNDUP、TCROUNDNEAR を頻繁に使用している場合。

一貫した解を得るために、問題を別の形で表現してみることができます。次の方法を試してください。

  • 一部またはすべての TCROUND 文で、より細かい精度を使用します。
  • +、-、SUM 以外の乗算や数値関数とともに TCROUND を使用しないでください。
  • すべての TCROUND 文で同じ精度(第 2 パラメーター)を使用します。
  • 可能な場合は、より具体的な関数 TCROUNDDOWN、TCROUNDUP、TCROUNDNEAR の代わりに TCROUND を使用します。

トラブルシューティングが必要ですか?

ナレッジベースをご確認ください