[[20190108182422]] 『曜日別利用者の名前を、別シートの表に自動的に表』(蝮) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『曜日別利用者の名前を、別シートの表に自動的に表示させたい』(蝮)

シート1には縦に氏名、横に曜日という単純な表を作成し、曜日ごとの利用予定を例えば「1」等と入力します。
シート2以降は月曜から日曜まで曜日ごとに表を作成し、そこへ利用予定に合わせた氏名を表示させたいのです。

aさんは月曜と水曜と木曜に利用予定があり
bさんは火曜と水曜に利用予定が
cさんは月曜と木曜と金曜に利用予定があるといった場合、
月曜のシートにはaさんとcさんが自動的に表示され、火曜のシートにはbさんのみが、また水曜のシートにはaさんとbさんが、木曜のシートにはaさんとcさん、金曜のシートにはcさんのみ、土曜と日曜には氏名表示なしといった具合です。

このような機能はエクセルにありますでしょうか。

< 使用 Excel:Excel2013、使用 OS:Windows10 >


シート2以降?のレイアウトを示したほうがよいのでは?
# シート1で十分分かりやすいようにもみえますけど。

(γ) 2019/01/08(火) 23:12


シート1では
  山田花子 田中太郎 佐藤次郎
月   1         1
火        1    1
水   1     1 

シート2(月)
山田花子
佐藤次郎

シート3(火)
田中太郎
佐藤次郎

という具合に抽出して上から順に表示させたいのです。シート2以降は他にも必要な情報が多数あり、手入力しプリントアウト後も加筆修正必須といったところです。

これまで、シート2以降の表を手入力で毎日作っていましたが、当日になっても訂正が多い業態なため、業務の効率化・書類の精度向上を目的に試行錯誤しているところです。
INDEXで試してみたりしていますが、勉強不足がたたりいまだにうまくいきません。
ご教示くだされば幸いです。
(蝮) 2019/01/08(火) 23:44


 回答ではないです。

 >シート1には縦に氏名、横に曜日という単純な表を作成し、

 とあるのに、上の表では縦に曜日、横が氏名となってますが、どちらが正しいんですか?
(ぬっ子) 2019/01/09(水) 06:21

Sub main()
    Dim c As Range, r As Range
    For Each c In Sheets("Sheet1").Range("A1:A" & Rows.Count).SpecialCells(2)
        If Not Evaluate("isref('" & c.Value & "'!a1)") Then
            Sheets.Add after:=ActiveSheet
            ActiveSheet.Name = c.Value
        Else
            Sheets(c.Value).Cells.ClearContents
        End If
        For Each r In Sheets("Sheet1").Rows(1).SpecialCells(2)
            If r.Offset(c.Row - 1) <> "" Then Sheets(c.Value).Range("A" & Rows.Count).End(xlUp).Offset(1).Value = r.Value
        Next r
    Next c
End Sub
(mm) 2019/01/09(水) 12:44

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.