dポイントプレゼントキャンペーン実施中!

エクセルの数字間にカンマを付けるには
どうすればよいでしょうか。

例をあげると
123
456
789

1,2,3
4,5,6
7,8,9

としたいです。よろしくお願いします。

A 回答 (11件中1~10件)

関数もVBAも知らない、だろう。

やり方なんてのはいろいろあるので、知らない事覚えるか知っていることでやるか質問者都合でしょう。すべてのやり方を覚える必要もない。

「1」を「1,」
「2」を「2,」
と0から9まで
10回置換するとほぼ作業終わり。

結果
「1,2,3,」
「4,5,6,」
になる末尾だけ悩めばよいが、RIGHT関数がある。SUBSTITUTE等と違い普段使う関数ではないだろうか。


10で割った余りが1の位
100で割った余りが10の位
分解もある。


これならわかる、その形はないか?。

やりやすいのは何?、
指定がないと、回答まだ出るのでは?。
    • good
    • 0

A1にデータがあるとすると


=TEXT(A1,"0!,0!,0")
結果をコピーして、値を貼り付ける。
    • good
    • 0

セル範囲を選び,右クリックしてセルの書式設定の表示形式のユーザー定義で


[>999]0","0","0","0;[>99]0","0","0;0","0
と設定し,3桁か2桁か4桁の数字をそのまま記入します。


#具体的なヤリタイ事が,3桁若しくは2桁か4桁という限定です。
 野放図にナンデモは出来ません。
    • good
    • 0

関数なら



=TEXT(A1,"#"& REPT("!,#",LEN(A1)-1))

VBAなら、このようにすればよいと思います。
'//
Sub Test1()
Dim d As String
Dim c As Variant
Dim r As Range
Dim rng As Range
Set r = ActiveCell '列の先頭のセルを選択
Set rng = Range(r, Cells(Rows.Count, r.Column).End(xlUp))
  Application.ScreenUpdating = False
  For Each c In rng
   If IsNumeric(c) Then
   d = Trim(Format(c.Value, Application.Rept(" #", Len(c.Value))))
   c.Value = Replace(d, Space(1), ",")
   End If
  Next c
  Application.ScreenUpdating = True
End Sub
    • good
    • 0

こんばんは!


横からお邪魔します。
VBAでの方法になってしまいますが・・・
画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面がでますので
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行 です)
データは1行目からあるものとしています。

Sub test() 'この行から
Dim i, j, k As Long
Dim str, buf As String
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
'2行目からのデータであれば上記の「1」を「2」に訂正してください。

On Error Resume Next
For j = 1 To Cells(i, Columns.Count).End(xlToLeft).Column
For k = 1 To Len(Cells(i, j))
str = Mid(Cells(i, j), k, 1)
buf = buf & str & ","
Next k
Cells(i, j) = Mid(buf, 1, Len(buf) - 1)
buf = ""
Next j
Next i
End Sub 'この行まで

尚、一旦マクロを実行すると元に戻せませんので別Sheetにコピー&ペーストしてマクロを試してみてください。

参考になれば良いのですが・・・m(__)m
    • good
    • 0

NO2です。


同一セルの変更なのでやはりマクロ(VBA)は如何でしょうか。
(1)別シートにデータをコピーしてコピー先のシートタブで右クリック→以下のコードを貼り付け→F5キー押下


Sub aaa()
area = Range("A1:D300")
For i = 1 To 300
For j = 1 To 4
Leng = Len(area(i, j))
For k = 1 To Leng - 1
char = Mid(area(i, j), k, 1)
wk = wk & char & ","
Next
area(i, j) = wk & Right(area(i, j), 1)
wk = ""
Next
Next
Range("A1:D300") = area
End Sub
    • good
    • 0

◆桁数は最大15桁まで、回答は10桁までです


=SUBSTITUTE(TRIM(TEXT(A1,"# # # # # # # # # #"))," ",",")
「エクセルで全ての数字間にカンマを付けたい」の回答画像5
    • good
    • 1

もしもA1セルから下方に3ケタの数字があるのでしたらB1セルには次の式を入力して下方にオートフィルドラッグします。



=IF(A1="","",MID($A1,1,1)&","&MID($A1,2,1)&","&MID($A1,3,1))
    • good
    • 0

良い方法が思いつかないので泥臭い方法です。

。。

A列に該当のデータがあったとして、
A列を選択し、「区切り位置」機能で「固定長フィールドのデータ」を選択することで、
A列を1文字づつの列に分けられると思います。

例:
A1「12345」

A1「1」 B1「2」 C1「3」 D1「4」 E1「5」

あとは、F1などで
=A1&","&B1&","&C1&","&D1&","&E1
とすればF1に「1,2,3,4,5」が完成するかと思います。

どうでしょう。
    • good
    • 0

例示の通り、桁数も少なく、固定長なら関数でも可能だがマクロ(VBA)の方が拡張性があります。


具体的な条件を補足して下さい。

この回答への補足

エクセルは初心者なので、専門的な
用語で説明できず申し訳ありません。

基本的に3ケタの数字のセルが
300行×4列あります。

数字には20個に一つくらいの割合で、
2ケタや4ケタになっているものがあります。

補足日時:2011/02/16 17:54
    • good
    • 0

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

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