アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。下記のように登録されているコードを1レコードづつに並べたいのですが、知恵が出ません。
できればExcelだけを利用して解決したいと思っております。
どなたか良い解決方法を教えてください。

テーブルデータ
  A列     B列   C列
グループ コードFrom コードTo
-----------------------------
A1   1  5
A1 200 250
B1 10 25
B1 100 150

求めている結果
  A列   B列   
グループ コード
-------------------
A1   1
A1   2
A1   3
A1   4
A1   5
A1   200
A1   201

 ・
 ・

よろしくお願いします。

A 回答 (2件)

こんばんは!


VBAでの一例です。

↓の画像のように左側がSheet1で右側のSheet2に表示するとします。
Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻りマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から
Dim i As Long, lastRow As Long, cnt As Long, wS As Worksheet
Set wS = Worksheets("Sheet1")

With Worksheets("Sheet2")
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
If lastRow > 1 Then
Range(.Cells(2, "A"), .Cells(lastRow, "B")).ClearContents
End If
For i = 2 To wS.Cells(Rows.Count, "A").End(xlUp).Row
cnt = wS.Cells(i, "B") - 1
Do Until cnt = wS.Cells(i, "C")
cnt = cnt + 1
With .Cells(Rows.Count, "A").End(xlUp).Offset(1)
.Value = wS.Cells(i, "A")
.Offset(, 1) = cnt
End With
Loop
Next i
End With
End Sub 'この行まで

※ 関数でないのでSheet1のデータ変更があるたびにマクロを実行する必要があります。m(_ _)m
「コードFrom To値を1コードづつにし」の回答画像2
    • good
    • 0
この回答へのお礼

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

参考にさせていただきます。

お礼日時:2014/07/31 22:12

関数を使って、Sheet2のA、B列に出力してみました。

(当方、Excel2010です)


Sheet1を添付図のようにしてください。
質問の表の左に1列挿入しています。挿入が難しければ、任意の箇所に同じように作ってください。添付図のように挿入できたとします。

添付図では、データの終了を示す「Z999」をB6に入力しています。
セルA2に、
 =SUM(A1,D1,1)-SUM(C1)
として下にコピーします。2行目は表題を参照するのでSUM関数で加算しています。各行の通番の最初をセットしています。算式を簡略化するために設けました。

Sheet2のA2に、
=VLOOKUP(ROW()-1,Sheet1!$A$2:$C$6,2,1)

Sheet2のB2に、
=IF(VLOOKUP(ROW()-2+(ROW()-2=0),Sheet1!$A$2:$C$6,3,1)<>VLOOKUP(ROW()-1,Sheet1!$A$2:$C$6,3,1),VLOOKUP(ROW()-1,Sheet1!$A$2:$C$6,3,1),SUM(B1,1))

として、下にコピーします。この例では、A列に「Z999」が出てきたら終了です。その行から下は削除してください。
Sheet1の参照範囲は実態に合うように変更してください。
「コードFrom To値を1コードづつにし」の回答画像1
    • good
    • 0
この回答へのお礼

早い回答ありがとうございます。
少し手を加えましたが欲しい結果が得られました。

ありがとうございました。

お礼日時:2014/07/31 22:11

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