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

エクセルでリストから出荷日を拾って表に自動で展開されるようなものを作成したいのですが、
複雑で悩んでいます。


品名    出荷日     数
メロン   3/15     10
バナナ   3/18     30
キウイ   3/20     5

上記のような表を、下記のような表に作り変えたいのですがどのようにマクロを組んだらできるのでしょうか?

                 出荷日
品名    ~3/13 3/14 3/15 3/16 3/17 3/18 3/19 3/20~        
メロン           10 
バナナ                     30
キウイ                            5


品名と日付が合う場所を探して数欄を自動入力するようにしたいです。
申し訳ありません。
お力をお貸しください。

A 回答 (3件)

こんばんは!


関数ではダメですか?

↓の画像では元データ(Sheet1)をSheet2に表示するようにしています。
Sheet1に作業用の列を設けます。
作業列E2セルに
=IF(COUNTA(A2:B2),A2&"_"&B2,"")
という数式を入れ、これ以上データはない!という位まで下へフィル&コピーしておきます。

そしてSheet2のB3セルに
=IFERROR(INDEX(Sheet1!$C:$C,MATCH($A3&"_"&B$2,Sheet1!$E:$E,0)),"")
という数式を入れ、列・行方向にフィルハンドルでコピー!
これで画像のような感じになります。

※ 当然VBAでも可能ですが、今回の質問は関数の方が簡単だと思います。
※ VBAでやる場合、各Sheetの配置が1行・1列でも違えば全く意図しない結果になりますので、
質問文でも行・列の配置が回答者に判るように示された方が良いと思います。m(_ _)m
「Excelで出荷表をマクロを使用して作り」の回答画像1
    • good
    • 0
この回答へのお礼

tom04様

関数,VBA共に回答をありがとうございます。
今回は追記などが簡単そうな関数を使用し表を作るようにしました。

回答者様にわかりやすいような質問の仕方についても勉強していきます。
ありがとうございました。

お礼日時:2015/03/10 17:47

ピボットテーブルでご希望のシートが出来ると思いますが


試されましたでしょうか。
一度、ピボットテーブルの設定をしてしまえば
次からは、更新を実行するだけですが。
    • good
    • 0

No.1です。


タイトルが「・・・マクロを使用して作りたい」となっていますので、
VBAでもやってみました。
前回アップした画像の配置通りとします。
尚、Sheet2のA列「品名」は重複なしに表示するようにしていますので、
A列は何も入力しなくても大丈夫です。
ただ、Sheet2の2行目はシリアル値をあらかじめ入力しておいてください。
標準モジュールです。

Sub Sample1()
Dim i As Long, lastRow As Long
Dim c As Range, r As Range
Dim wS As Worksheet

Set wS = Worksheets("Sheet2")
lastRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
If lastRow > 2 Then
wS.Rows(3 & ":" & lastRow).ClearContents
End If
With Worksheets("Sheet1")
.Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A2"), unique:=True
For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
Set c = wS.Range("A:A").Find(what:=.Cells(i, "A"), LookIn:=xlValues, lookat:=xlWhole)
Set r = wS.Rows(2).Find(what:=DateValue(.Cells(i, "B")), LookIn:=xlFormulas, lookat:=xlWhole)
wS.Cells(c.Row, r.Column) = .Cells(i, "C")
Next i
End With
End Sub

※ Sheet1のデータ変更があるたびにマクロを実行する必要があります。m(_ _)m
    • good
    • 0

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