関数を含める以外に解決策を見つけることはできませんが、Excelでかなり簡単な問題が発生しているようです。
基本的に、ドルとセントの2つのフィールドで価格を表示したいと思います。
私はこれで問題なく動作していますが、ドルのフィールドに "24990.55"と入力すると、 "24991"はドル、 "55"はセントフィールドです。
Excelを強制的に[〜#〜] not [〜#〜]自動丸めする方法はありますか?
場合
_A1 = 24990.55
_
その後
=INT(A1)
は24990を返します=MOD(A1,1)
は0.55を返します小数を切り捨てる関数が必要です。 Int()
がそれを行います。 Mod()
は小数点のみを表示します。
関数を使わずにどのような振る舞いを期待するのかわかりません。数値をフォーマットするだけでは、その基になる値は変更されません。これは、整数値のみを表示し、四捨五入せずに小数を無視するフォーマットがないことを意味します。 Excelはそのようには機能しません。小数点なしにフォーマットすると、常に丸めが含まれます。これを回避するには、小数を切り取る関数が必要です。
セントを整数で表示したい場合は、Mod()
の結果に100を掛けるだけです。
編集:あなたは上記の関数について話しますが、他の応答を読んで、あなたが実際に意味しているのは vba ルーチン、UDFまたは他のマクロだと思います。質問をするときは、用語を正しく理解することをお勧めします。
あなたは本当にあなたが達成したいことを明確にする必要があります。はっきりしない
要件を明確に指定せずに質問に賞金をかけるだけでは、あまり役に立ちません。
次の仮定に基づく別のアプローチを次に示します。
これは、次の変更イベントマクロによって実現できます。
_Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then
On Error Resume Next
Application.EnableEvents = False
Target.Offset(0, 2) = Target - Int(Target)
Target.Offset(0, 1) = (Target - Int(Target)) * 100
Target = Int(Target)
Application.EnableEvents = True
End If
End Sub
_
シートタブを右クリックし、[コードの表示]をクリックして、上記のコードをコードウィンドウに貼り付けます。
もちろん、関数なし、マクロなし、VBAなしで、まったく同じことを実現するためのはるかに簡単な方法は、セルに数値を入力するのとまったく同じ数のキーストロークで実行できます。
これらの2セットのキーストロークを比較します
2499.55
と
2499Tab55
キーストロークの2番目のセットは、セントを独自のセルに入れ、整数として表示します。
このスレッドで受け取った多くの提案に対するフィードバックをお待ちしております。
2番目のセルを使用して値を計算できます。値がセルA1にある場合、数式は次のようになります。
=A1-MOD(A1,1)
オプションの場合は、データ入力を1つのワークシート(タブ)に配置し、最終的な回答が必要な場所に丸められていない出力を出力します。
これを行うことはできません。ただし、oddソリューションが必要な場合:
=C1
と入力します。図形をコピーしてA2に貼り付けると、数式が=C2
に変更されます。必要に応じて、Altキーを再度使用して図形のサイズを変更し、セルに収まるようにします。
ところで:私はこのアプローチはお勧めしませんですが、それはあなたの質問に対する(珍しい)答えです。
笑いのためだけに、ここに別の解決策があります。
列に既存のデータがあり、ドルとセントを2つの別々の列に分割したい場合は、Text to Columns機能を使用できます。
Excel 2007の場合:
[データ]タブが表示されていることに注意してください。列が強調表示された状態で、Text to Columnsを選択すると、以下のダイアログが表示されます。選択区切りそして次にヒット。
この画面で、Otherを選択し、次のようにフィールドにピリオドを入力します。
この時点で、[完了]をクリックすると、2つの列に分割されます。ウーフー!
フィールドの宛先とフォーマットを選択する場合は、[次へ]をクリックします。
ファンシー!
ああ、これが結果です:
やあ、エクセル!
セルを一般またはテキストとしてフォーマットできますか?これらの形式は丸められません。
または、ドルのセルをROUNDDOWN
して、常に適切なドルの数値を表示することもできます。
次のような式を使用することもできます
=LEFT(A1,FIND(".",A1,1)-1)
ドルとセントを別々のセルに分割します。これを行うにはいくつかの方法があります。少しクリエイティブになりたいのであれば、複雑にする必要はありません。
どのルートを使用する場合でも、2つではなく3つのセルを使用する必要があります。全額に1セル、ドルに1セル、セントに1セル。これを行うためにコードを使用しない場合は、入力セルと数式を含む2つのセルが必要です。
TRUNC関数は数値を丸めません。 ... TRUNC関数(truncate関数の略)は、数値の小数部分をセットに削除するために使用されます
表示する小数点以下の桁数は、[ツール]メニューの[オプション]で設定できます。[小数点以下の桁数]は、[固定小数点オプション]で選択します。または、INT関数を使用して、小数を持つ値の整数部分のみを抽出することもできます。
これは間違いなく可能です!数値形式を使用し、セルの実際の値を変更せずに、小数をセント全体として表示するための巧妙な回避策があります。セルを右クリックして、「セルのフォーマット」を選択します。 [番号]タブで、[カスタム]に移動します。
カスタム番号形式の「タイプ」フィールドで、以下をコピーして貼り付けます。
# ¢
次に、次のキーボードの組み合わせを入力します。
CTRL + J
そして最後に:
%
[OK]をクリックして、カスタム番号形式を保存します。次に、セル形式を「テキストの折り返し」に設定します。
%記号は数値に100を掛けるので、0.37は37と表示されます。また、不要な形式にパーセント記号が追加されます。
Ctrl + Jは、パーセント記号をセルの2行目に移動するCHR(10)改行を挿入することにより、パーセント記号を非表示にします。 Excelはこのセルの行の高さを自動的に増加させないため、非表示のままになります。
最終結果は、0.37のセル値が37¢として表示されることです。私にとって、これは数式でセル値を変更するよりもはるかに優れています。
私が理解している限り、あなたはこのようなものを表示する必要があります...
そしてそれを達成するためにあなたはそのセルをフォーマットする必要があり、フォーマットであなたはこれをする必要があります。
残念ながら、これが関数なしでどのように可能であるかはわかりません。
必要な関数はTRUNC
です。これは単にあなたの数の小数部分を落とすでしょう。
実際には、左を使用して検索し、検索後に必要な小数点以下の桁数を追加する必要があります。例:=LEFT(H4,FIND(".",H4)+2)