プロが教えるわが家の防犯対策術!

質問概要
タイトルの通り。

詳細
OS=Windows10  エクセルバージョンはexcel2002です。
計算結果の桁揃えをしたいです。桁揃えをしないと数値表示が見にくいですからね。

「桁揃えをしたい! 方法は?」という質問をすると
「そんなのカンタンじゃん! セルのデータ形式を”数値”にすれば簡単に桁揃えができるよ」
と言われそうですが、質問内容はそうではありません。

下記のようなデータがあります。

B8からB19までに2023年中の売上額が入力済みです。
同様に
B19からB31までに2023年中の売上額が入力済みです。

この売上金額の、全体合計、年別の合計をセルB1に計算出力したいです。
下記のような関数を組み込んだのですが、TEXT関数によって
「3桁ごとのカンマ注入」は出来たのですが、
桁揃えができません。
何が悪いのでしょうか?

ちなみにTEXT関数の#を0に変えると、桁揃えは出来ることは出来るのですが、
数値の無い桁にもゼロが入ってしまい、見栄えが良くありません
(例 100 → 000,000,100 となってしまう)


詳しい方、お願いします。



(詳しくは添付画像をみてください)

「エクセル。計算結果の桁揃えをするにはどう」の質問画像

A 回答 (5件)

こんにちは



いわゆる「ゼロパディング」をスペースで行いたいという事ですよね?

数値だけであれば通常は右詰めで表示するので、ご質問のような桁ぞろえを気にする必要はありません。
まとめて文字列にしているので、位置揃えのためにスペースをいれなければならなくなりますが、使用する文字フォントによっては、スペースの幅が異なるので、必要なスペースの文字数が変わってしまうという問題もありそうです。

また、バージョンが2002とかなり以前のものなので、エクセルの仕様がどうなっていたのかもよくわかりませんけれど・・・

一番お薦めなのは、妙な文字の連結をせずに、素直に個別のセルに計算値を表示する方法です。
(添付図参照)
ご覧になればわかる通り、こちらであれば複雑なことを粉う必要は一切なくなり、式も書式も簡単になります。
1セル内に表示している風に見せたければ、セル間の罫線を見えなくしておけば良いでしょう。
また、表示フォントを気にする必要もなくなると思います。


どうしても、ご提示のように文字列化して行いたいのなら・・
1)表示書式で行う方法
Text関数の表示書式に
  "????,??0"
などを用いることで、スペース埋めをすることができます。
2)桁揃え分をスペースで埋める方法
 RIGHT(" "& 計算テキスト ,10)
等としてスペースで埋めたものを、適当な文字数で切り出します。

※ いずれの場合も、文字数で決めているので、「等幅フォント」を利用しないと、スペースの幅が不足する場合があります。
※ 他にも REPT(" ", 桁数-LEN(表示文字)) などで揃える方法もあります。
「エクセル ゼロパディング」あたりをキーに検索すれば、他にもいろいろな方法が見つけられると思います。
「エクセル。計算結果の桁揃えをするにはどう」の回答画像3
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
参考にさせていただきます。

お礼日時:2024/02/29 15:06

文字列の配置は右寄せで等幅フォントを前提とします。



たとえばだいたい6桁くらいの数値を想定するなら、8桁のスペースを用意しましょう rept(" ", 8) let関数で名前をつけてやるといいですね。
で、 text関数のところを
right(用意したスペース&text関数, 想定した桁)
としてやります。あとは同じように並べるだけ。
「エクセル。計算結果の桁揃えをするにはどう」の回答画像5
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
参考にさせていただきます。

お礼日時:2024/02/29 15:07

No3です。



連投失礼。
どうやら、連続スペースがトリミングされてしまうみたいですね。
No3の回答中の以下を訂正しておきます。

>RIGHT(" "& 計算テキスト ,10)
   ↓   ↓   ↓
 RIGHT("     "& 計算テキスト ,10)

※ 上記は回答欄に表示するために、全角スペースで代用していますが実際には半角スペースの連続です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
参考にさせていただきます。

お礼日時:2024/02/29 15:06

フォントは半角英数字も等幅フォントの[ MS ゴシック]にします。


数式は以下のようにTEXT関数の表示形式を?で表示させます。
 =CONCATENATE(" t=",TEXT(30000,"???,???,???"),CHAR(10))&CONCATENATE("2023=",TEXT(2700,"???,???,???"),CHAR(10))&CONCATENATE("2024=",TEXT(22200,"???,???,???"))
※ 計算結果と最初のCONCATENATE関数を省き、連結したもの

表示形式は、以下の説明で理解してください。
https://support.microsoft.com/ja-jp/office/%E8%A …
「エクセル。計算結果の桁揃えをするにはどう」の回答画像2
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
参考にさせていただきます。

お礼日時:2024/02/29 15:06

実際に表示したい状態のイメージを補足下さい。


数式は画像でなく質問へのコピペがあると、回答者が編集しやすいです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

>実際に表示したい状態のイメージを補足下さい。

承知しました。
画像添付をしたのですが、もしかしたらOS、ブラウザ、ネット環境などによっては表示されていないのかもしれませんね。


↓現状の表示結果

t= 30,000
2023= 7,800
2024= 22,200


なお、(”t=” というのは2023年、2024年のトータルの合計、の意味です)

↓実現したい表示結果

t=_____30,000
2023=__7,800
2024=_22,200

(上記のように、1の位、カンマの位置が縦にしっかり揃うのが目標です。
なお、アンダーバーが入っているのは、ブラウザによっては
表示フォントが等幅フォントではなく、幅調整型フォントを採用してしまい、
「実現したい表示結果」がこの質問掲示板上(ブラウザ上)では
再現表示できないからです。
アンダーバーの部分はスペース(空白文字)に置き換えて読んでください)


>数式は画像でなく質問へのコピペがあると、回答者が編集しやすいです。

承知しました。

関数式は以下の通りです。
=CONCATENATE(CONCATENATE("t= ",TEXT(SUM(B8,B98),"###,###,###),CHAR(10),
(CONCATENATE("2023= ",TEXT(SUM(B8,B19),"###,###,###),CHAR(10),
(CONCATENATE("2024= ",TEXT(SUM(B20,B31),"###,###,###),CHAR(10))))


質問ではデータは2年分(24か月)しかありませんが、実際の仕事では
もっとたくさんのデータがあります。
よろしくお願いします。

お礼日時:2024/02/26 11:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A