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

excelで営業の業績管理システムを作成しています。
シート1はメニュー
コンボボックス1に⚪年⚪月
2に担当者
3に担当者コード
また、各シートにを開くボタンを設置、

シート2にメニューの該当月のカレンダーがA列に
自動作成・・・1(火)
1ヶ月の日付すべて入っています。
またこのシートが各担当者ごとと、全体確認様シートを作成してあります。

シート5にはフォームで担当者の入力データを記入するようになっています。
A列 5桁数字 00001・・・
B列 日付が⚪⚪⚪⚪年⚪月⚪日
C列 担当者No
D列 担当者
E列から獲得数字
が入力されています。
ちなみにシート5は担当者全員のデータが記入されるシートになっています。
このシート5も各担当者ごとに転記されているシートも作成してありますがメニューの月のフィルターはかかっていません。


この担当者ごとのデータからメニューシートの月を絞りこみ、シート2の各担当者のシートに日付一致でデータを転記していきたいのですが、どなたかご教示いただけませんか?

各担当者のデータからではなく、シート5のすべてのデータから転記の方が早ければそれでもかまいません。
宜しくお願い致します。

質問者からの補足コメント

  • メニューシート

    「excel vbaで日付一致の行にデータ」の補足画像1
      補足日時:2017/08/26 21:16
  • シート2

    「excel vbaで日付一致の行にデータ」の補足画像2
      補足日時:2017/08/26 21:16
  • シート5

    「excel vbaで日付一致の行にデータ」の補足画像3
      補足日時:2017/08/26 21:16
  • 再度ありがとうございます。
    でも、やっぱり添付したシート5のデータからシート2の日付でマッチした行に転記していきたいのですがぜんぜん分からず…教えていただけませんか?

    No.2の回答に寄せられた補足コメントです。 補足日時:2017/08/28 20:46

A 回答 (3件)

では、これでどうでしょう。


(素直なコードが書けなくて、すいません)

Sub sample()
With Sheets("Sheet2").Range("B3:D23")
.Formula = "=SUMIFS(Sheet5!E:E,Sheet5!$D:$D,$D$1,Sheet5!$B:$B,$A3)"
.Value = .Value
.Replace What:="0", Replacement:="", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End With
End Sub
    • good
    • 1
この回答へのお礼

助かりました

ありがとうございました。
イメージ通りになりました。

もうひとつだけ質問させて下さい。
シート2と、シート5の列を指定したい場合はどこを変更すればいいのですか?
本当に申し訳ありません。

お礼日時:2017/08/31 19:48

わたしの回答のせいで、後の回答が付きにくくなってしまったようで、申し訳ないです。


迷惑ついでに、こんなのはどうでしょう。

下記のマクロは、Sheet1(ひな型)とSheet2(データ)を統合して、新しいシートを作成します。
前回のものと組み合わせれば、ご希望の結果が得られると思います。

Sub sample()
Sheets("Sheet1").Copy after:=Worksheets(Worksheets.Count)
ActiveSheet.Range("A1").Consolidate Sources:=Array("Sheet1!R1C1:R31C4", _
"Sheet2!R1C1:R31C4"), Function:=xlSum, TopRow:=True, LeftColumn:= _
True, CreateLinks:=False
End Sub
「excel vbaで日付一致の行にデータ」の回答画像2
この回答への補足あり
    • good
    • 0
この回答へのお礼

助かりました

列に空白を入れたら上手く転記できました。
助かりました。
本当にありがとうございました。

お礼日時:2017/09/01 17:34

画像のようなシート構成にすることができるのであれば、AdvancedFilterメソッドで一発抽出できますよ。


こんな感じです。

Sheets("Sheet5").Range("A:E").AdvancedFilter _
Action:=xlFilterCopy, Unique:=False, _
CriteriaRange:=Sheets("Sheet1").Range("A1:C2"), _
CopyToRange:=Sheets("Sheet2").Range("A1:E1")
End Sub
「excel vbaで日付一致の行にデータ」の回答画像1
    • good
    • 0
この回答へのお礼

ありがとうございます。
ただシート2は一ヶ月分のカレンダーが入っていて、そこに転記したいのですが教えていただけますか?

お礼日時:2017/08/26 17:32

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A