• 締切済み

EXCEL 小数点以下の桁数を条件によって変えるには

G列の書式設定を数値、小数点以下0桁に設定してあります D列にある特定の文字が入力された時だけ、小数点以下の桁数を1桁にしたいのですが、どのようにすればよいでしょうか? それと小数点以下0桁、1桁の数字の桁位置をそろえることはできますか

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

#4の補足に関して >書式を設定する関数を作ることはできないんですか できません。 値まで変えてしまって、書式的に値を変えてしまう関数なら TEXT関数があります。 例えば A1に数、B1に=TEXT(A1,"00.00") しかし元は数値だったものが、結果は文字列の値になってしまいます。

MonkyTurn
質問者

補足

回答ありがとうございました。 G列に式を入れておいて直接数値を入力して表示を変えるのは絶対にできないんですね。 VBAというのは使ったことがないんですけど、これでこの処理をするのはかなりむずかしいんですか?

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

下記のエクセルの原則をしっかりつかんでください。無駄な質問を せずに済みます。 小数点以下の表示は、「書式」に属することです。 関数は書式を設定できません。セルの値だけです。 条件付き書式も、表示形式の選択はありません(E2002) ですからVBAでやるよりほかありません。 >小数点以下0桁の場合小数点なしで表示したいのです これも過去にOKWAVEで数回質問が出たように思うが、結論は、すんなりした方法では不可能だったと思う。

MonkyTurn
質問者

補足

やはりりそうなんですか、 最初に条件付き書式でやろうとしたけどできなくて、IF文でなんとかできないかなと思ったけど書式を設定する関数がわかりませんでした。 存在しない物を探しても見つかるはずないですね。 EXCELの解説書か何かに関数を自分で作れると書いてあったような気がするんですが、書式を設定する関数を作ることはできないんですか?

  • ipsum11
  • ベストアンサー率21% (55/251)
回答No.3

どうも、#2です。 >A列からT列まであるかなり大きな表 ん?条件によって変えるのはG列だけではないのでしょうか?全ての列に入力用と表示用がいるわけではなく、変えたいセルだけでいいのですが、それでもだめですか? >直接入力で、可能な方法はないでしょうか? であるのなら、VBAでやるしかなさそうですね。

MonkyTurn
質問者

補足

条件によって変えるのはG列だけなのですが、 現在1画面でA列からT列まで表示できていますギリギリまでセル幅を縮めたので列を挿入するとデータの入力や表示が見にくくなりますし、印刷する時に入力用の列の列幅を0にする手間がかかります。 なので、なんとか直接入力でできる方法はないかなと思って質問しました

  • ipsum11
  • ベストアンサー率21% (55/251)
回答No.2

見かけ上のみ、ダミーのセルを使う、と言う条件でよければ... G1に以下の式を入れればできると思います。 = IF($D2 = "A", TEXT($H2,"#,##0.0"), TEXT($H2,"#,##0") & " " ) この場合、G列(右揃え)が表示用、H列が入力用になりますが。 だめですかね。

MonkyTurn
質問者

補足

回答ありがとうございます 試してみました、小数点の桁数を条件によって変えることはできました しかしA列からT列まであるかなり大きな表なので表示用と入力用に分けるのはちょっと困ります。 直接入力で、可能な方法はないでしょうか?

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

小数点は残りますがそれでいいなら、表示形式をユーザー定義にして #,##0.? とすれば?の部分が0の時はブランクが入り桁調整できます。 100 → 100._ "_"はブランク 10.1→  10.1 10.01→ 10. 10.05→ 10.1

MonkyTurn
質問者

補足

すばやい回答ありがとうございます 小数点以下0桁の場合小数点なしで表示したいのです 100--> 100 10.1--> 10.1 ↑こんなかんじです