• ベストアンサー

エクセルで2つのデータの間に / (スラッシュ)を挿入して1つのセルしたい

A列にランダムで発行した数字が10000個あり、それら2つを1組にし数字と 数字の間に/(スラッシュ)が入った状態にB列に移したいと思っています。 A B 45 45/75 75 82/62 82 62 . . できれば自動で処理を行いたいのですが、関数もしくはマクロなどで できるでしょうか?

質問者が選んだベストアンサー

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

#3のmshr1962です。 >#REF! となってしまったのですが,セル番号などの入力が必要ですか すみません。)がひとつ抜けてました =INDIRECT("A"&(ROW()*2-1))&"/"&INDIRECT("A"&(ROW()*2))

redbulls
質問者

お礼

できましたっ! ありがとうございました。 この作業をワンアクションで実行するにはやはりマクロを勉強しなければ ですね。。。

その他の回答 (5)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんばんは。 >この作業をワンアクションで実行するにはやはりマクロを勉強しなければ マクロをお望みとか?以下は、シートモジュールでも、標準モジュールでも構いません。 高速実行します。なお、書式は、文字列にしました。そうしないと、日付と認識して、データが、日付に変わってしまうことがあります。 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)
回答No.5

例データ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)
回答No.3

B1=INDIRECT("A"&(ROW()*2-1)&"/"&INDIRECT("A"&(ROW()*2)) でB500までコピーでは如何ですか?

redbulls
質問者

お礼

#REF! となってしまったのですが,セル番号などの入力が必要ですか

回答No.2

#1です。 B1セルを1万行コピーするのが面倒なときは、 順に以下のキー操作を行ってください。 [Ctrl]+[Home]   (A1セルへ移動) [Ctrl]+[↓]     (A10000セルへ移動) [→]         (B10000セルへ移動) [Shift]+[ctrl]+[↑] (B1~B10000セルを一気に範囲指定) [Ctrl]+[D]     (一気に下にコピー)

回答No.1

B1セルに =A1&"/"&A2 と入れて、下にコピーしてみてください。 &は文字列をつなげる演算子です。

redbulls
質問者

お礼

説明が足りずすいません。 こちらで実行すると1行づつしか繰り上がらないので75の部分が重なって しまいました。コピーの仕方に問題があったのでしょうか? 1行目 45/75 2行目 75/82 2行づつ1セットにしたいのですが、よろしくお願いします。

関連するQ&A