- ベストアンサー
エクセルで2つのデータの間に / (スラッシュ)を挿入して1つのセルしたい
A列にランダムで発行した数字が10000個あり、それら2つを1組にし数字と 数字の間に/(スラッシュ)が入った状態にB列に移したいと思っています。 A B 45 45/75 75 82/62 82 62 . . できれば自動で処理を行いたいのですが、関数もしくはマクロなどで できるでしょうか?
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
#3のmshr1962です。 >#REF! となってしまったのですが,セル番号などの入力が必要ですか すみません。)がひとつ抜けてました =INDIRECT("A"&(ROW()*2-1))&"/"&INDIRECT("A"&(ROW()*2))
その他の回答 (5)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 >この作業をワンアクションで実行するにはやはりマクロを勉強しなければ マクロをお望みとか?以下は、シートモジュールでも、標準モジュールでも構いません。 高速実行します。なお、書式は、文字列にしました。そうしないと、日付と認識して、データが、日付に変わってしまうことがあります。 Sub SampleMacro1() Dim r As Range Dim i As Long, k As Long Dim myRow As Long Dim myAr As Variant Dim myRet() As String Range("A1").Select On Error Resume Next Set r = Application.InputBox("データの最初の頂点を選択してください。", Type:=8) If r = Empty Then Exit Sub On Error GoTo 0 myRow = Range(r, Cells(65536, r.Column).End(xlUp)).Rows.Count If myRow = 1 Then Exit Sub '行がひとつだけならやめる If myRow Mod 2 = 1 Then '奇数なら、ひとつ手前にする myAr = Range(r, Cells(65536, r.Column).End(xlUp).Offset(-1)).Value Else myAr = Range(r, Cells(65536, r.Column).End(xlUp)).Value End If For i = LBound(myAr, 1) To UBound(myAr, 1) Step 2 ReDim Preserve myRet(k) myRet(k) = myAr(i, 1) & "/" & myAr(i + 1, 1) k = k + 1 Next i With r.Offset(, 1).Resize(UBound(myRet, 1) - LBound(myRet, 1) + 1) .NumberFormatLocal = "@" '書式は文字列にする .Value = WorksheetFunction.Transpose(myRet) End With End Sub '--------------------------------
- imogasi
- ベストアンサー率27% (4737/17069)
例データA1:A12 A列 B列 1 1/2 2 3/4 3 5/6 4 7/8 5 9/10 6 11/12 7 8 9 10 11 12 B1に=INDEX($A$1:$A$100,ROW()*2-1,1)&"/"&INDEX($A$1:$A$100,ROW()*2,1) と入れて、A列の半分の行まで複写する。 結果上記B列の通り。
- mshr1962
- ベストアンサー率39% (7417/18945)
B1=INDIRECT("A"&(ROW()*2-1)&"/"&INDIRECT("A"&(ROW()*2)) でB500までコピーでは如何ですか?
お礼
#REF! となってしまったのですが,セル番号などの入力が必要ですか
- shinkun0114
- ベストアンサー率44% (1553/3474)
#1です。 B1セルを1万行コピーするのが面倒なときは、 順に以下のキー操作を行ってください。 [Ctrl]+[Home] (A1セルへ移動) [Ctrl]+[↓] (A10000セルへ移動) [→] (B10000セルへ移動) [Shift]+[ctrl]+[↑] (B1~B10000セルを一気に範囲指定) [Ctrl]+[D] (一気に下にコピー)
- shinkun0114
- ベストアンサー率44% (1553/3474)
B1セルに =A1&"/"&A2 と入れて、下にコピーしてみてください。 &は文字列をつなげる演算子です。
お礼
説明が足りずすいません。 こちらで実行すると1行づつしか繰り上がらないので75の部分が重なって しまいました。コピーの仕方に問題があったのでしょうか? 1行目 45/75 2行目 75/82 2行づつ1セットにしたいのですが、よろしくお願いします。
お礼
できましたっ! ありがとうございました。 この作業をワンアクションで実行するにはやはりマクロを勉強しなければ ですね。。。