[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『2行で1件になっているデータを1行にしたい』(みかん)
お世話になります。
2行で1件になっているデータを1行にしたいです。
たとえば以下のように2行になっているデータを
タイトル1 品名コード
タイトル2 品目
1 100
2 あああ
3 200
4 いいい
5 300
6 ううう
隣のシートに以下のように1行にしたデータを作りたいです。
タイトル 品目コード 品目
1 100 あああ
2 200 いいい
3 300 ううう
タイトル行は自分で編集するので、考慮しなくてもいいので
データの部分だけ式を使ったりでできる、何か良い方法はないでしょうか?
よろしくお願い致します。
< 使用 Excel:Excel2013、使用 OS:Windows8 >
Sheet1のA3から下にデータが入力されており、 Sheet2の2行目以降に表示させるものとして
Sheet2 A2: =INDEX(Sheet1!A:A,ROW()*2-1) B2: =INDEX(Sheet1!A:A,ROW()*2)
こんな感じですか?
(jjj) 2017/06/19(月) 15:41
Sub Sample()
Dim S1 As Worksheet, S2 As Worksheet Dim I1 As Long, I2 As Long
Set S1 = Sheets("Sheet1") 'Sheet1 を S1 と表します Set S2 = Sheets("Sheet2") 'Sheet2 を S2 と表します I2 = 1 'I2 に 1を設定します
For I1 = 1 To S1.Range("A" & Rows.Count).End(xlUp).Row 'I1を1からSheet1のA列の終わりの数まで1づつ増加してNextI1まで処理を繰り返します。 If I1 - Int(I1 / 2) * 2 = 0 Then 'I1が偶数なら S2.Cells(I2, 2).Value = S1.Cells(I1, 1).Value 'Sheet2のI2行2列目(B列)はSheet1のI1行1列目(A列) I2 = I2 + 1 'I2をカウントアップします Else S2.Cells(I2, 1).Value = S1.Cells(I1, 1).Value 'Sheet2のI2行1列目(A列)はSheet1のI1行1列目(A列) End If Next I1
End Sub
(パオ〜〜ン) 2017/06/19(月) 15:43
確かにそうですね。
難しく考え過ぎてたかもしれないです。
やってみたら、難しい式を使わずにできそうですね。
ありがとうございました。
●jjjさん
この式です!
思っていた一覧を作れました。
ありがとうございました。
●パオ〜〜ンさん
今回は1ファイルだけでマクロを作るほどでもなさそうなのですが、
今後の参考にさせて頂きます。
ありがとうございました。
もし簡単にできそうだったら教えて下さい。
マクロを実行したところ、
sheet2のA列にはsheet1のA列の奇数行の値がセットされる
B列にはsheet1のA列の偶数行の値がセットされる
ようなのですが、
sheet2のA列にはsheet1のB列の奇数行の値がセットされる
B列にはsheet1のC列の偶数行の値がセットされる
ようにするにはどうすればよいでしょうか?
よろしくお願い致します。
(みかん) 2017/06/19(月) 16:34
現行
>sheet2のA列にはsheet1のA列の奇数行の値がセットされる
> B列にはsheet1のA列の偶数行の値がセットされる
は
If I1 - Int(I1 / 2) * 2 = 0 Then 'I1が偶数なら S2.Cells(I2, 2).Value = S1.Cells(I1, 1).Value 'Sheet2のI2行2列目(B列)はSheet1のI1行1列目(A列) I2 = I2 + 1 'I2をカウントアップします Else S2.Cells(I2, 1).Value = S1.Cells(I1, 1).Value 'Sheet2のI2行1列目(A列)はSheet1のI1行1列目(A列) End If
ですから、
>sheet2のA列にはsheet1のB列の奇数行の値がセットされる
> B列にはsheet1のC列の偶数行の値がセットされる
とするためには、上記の部分を以下のようにしていただければできるかと...
If I1 - Int(I1 / 2) * 2 = 0 Then 'I1が偶数なら S2.Cells(I2, 2).Value = S1.Cells(I1, 3).Value 'Sheet2のI2行2列目(B列)はSheet1のI1行3列目(C列) I2 = I2 + 1 'I2をカウントアップします Else S2.Cells(I2, 1).Value = S1.Cells(I1, 2).Value 'Sheet2のI2行1列目(A列)はSheet1のI1行2列目(B列) End If
(パオ〜〜ン) 2017/06/20(火) 13:37
カッコの中の1がA列、2がB列、3がC列と言うことだったんですね。
コメントまで書いてくれてたのに理解不足ですみません。
動かしてみたらうまくできました。
ありがとうございました。
(みかん) 2017/06/20(火) 19:01
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.