目的は仕事で何日に誰が休むむかを一目で知りたくてエクセルで作成したカレンダーを作りました(縦型日付表示) 現在は届けの用紙が来たらカレンダーに手打ちしてます。
(シート1) 種類は名前に色分けをしたかったので種類を入れてます。
(上手く作成できたら種類によって名前に色わけとかしたくて種類を作りました)
横に名前が出るようにしてます。同じ日に休みの人が増えれば HIJKと横に続きます。
A B C D E F G
1 日付 曜日 名前 種類 名前 種類
2 1日 桃 有給 (みかん) (休み)
3 2日
4 3日
以下日にちは月末まであります。
別のシート(シート2)で作成したデータを反映させたいのですが同じ日付でデータがある場合
どうすれば反映されるのでしょうか?ためしにD3にカウント式(=COUNTIF($A$3:$A3,$A3))を入れて
順番をつけてみました。
A B C D
1 日付 名前 種類 カウント
2 5/1 桃 有給 1
3 5/3 奈々 半日 1
4 5/1 みかん 休み 2
以下休み届けなどが出されたら随時追加します。
わからないなりにネットで見て数式を入れてみました。
シート1のC2に
=IF(ISERROR(VLOOKUP(A2,シート2!$A:$C,2,0)),"",VLOOKUP(A2,シート2!$A:$C,2,0))
C3に
=IF(ISERROR(VLOOKUP(A2,休み!$A:$D,3,0)),"",VLOOKUP(A2,休み!$A:$D,3,0))
入力すると始めの 5/1 桃 有給はカレンダーにあがるのですが5/1 みかん 休みを出せません
あまりエクセルなどに詳しくなく、他の数式なども活用できるのかこういう表がそもそもエクセルでできるのかも勉強不足でわかりません。なんだかマネて作成したらあまりに長くて引数が足りませんみたいな表示がでました。
お手数をおかけしますが、教えていただけたら嬉しいです。よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
こんばんは!
お望みの方法とは異なるかもしれませんが、手っ取り早くVBAでやってみました。
まずSheet1にカレンダーを作成します。
↓の画像で上側がSheet1、下側がSheet2とします。
(お手元のSheetは画像通りの配置にしてください)
まずSheet1のA1セルに西暦年を、C1セルに表示させたい月の数値を入力します。
A4セル(セルの表示形式はユーザー定義から d日 としておく)に
=IF(MONTH(DATE(A$1,C$1,ROW(A1)))=C$1,DATE(A$1,C$1,ROW(A1)),"")
という数式を入れます。
B4セル(セルの表示形式はユーザー定義から aaa としておく)に
=IF(A4="","",A4)
という数式を入れ → A4・B4セルを範囲指定 → B4セルのフィルハンドルで月末の34行目までコピー!
これでA1・C1セルの数値を入れ替えるだけでカレンダーができます。
次にAlt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト
Dim i As Long, j As Long, lastRow As Long, lastCol As Long, wS As Worksheet 'この行から
Sub 表示()
Set wS = Worksheets("Sheet1")
lastCol = wS.Cells(3, Columns.Count).End(xlToLeft).Column
With Worksheets("Sheet2")
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
If lastRow > 1 Then
Range(.Cells(2, "A"), .Cells(lastRow, "C")).ClearContents
End If
For i = 4 To 34
For j = 3 To lastCol Step 2
If wS.Cells(i, j) <> "" Then
With .Cells(Rows.Count, "A").End(xlUp).Offset(1)
.Value = wS.Cells(i, "A")
.Offset(, 1) = wS.Cells(i, j)
.Offset(, 2) = wS.Cells(i, j + 1)
End With
End If
Next j
Next i
End With
End Sub 'この行まで
そしてExcel画面に戻り、画面左下のSheet1のSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペースト
Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
Dim lastCol As Long
lastCol = Cells(3, Columns.Count).End(xlToLeft).Column
If Intersect(Target, Range(Cells(4, "C"), Cells(34, lastCol))) Is Nothing Then Exit Sub
Call 表示
End Sub 'この行まで
最後にExcel画面に戻り、Sheet2のA列の表示形式を「日付」にしておきます。
これでSheet1のデータ変更があるたびにSheet2に画像のような感じで表示されます。m(_ _)m
回答1の方から教えて頂いたように、私がバージョン情報を書いていない中でご解答いただきありがとうございます。
回答が早くてこちらにまずビックりしております。
しかも画像付きで!!カレンダーが大変みやすいですね。
内容も詳しく書いていただきすごく助かります。
これから早速やってみたいと思います。本当にありがとうございました。
No.1
- 回答日時:
シート1にカレンダー,シート2に休暇届一覧とします
簡単のため,次のように準備します
シート1:
A2にはとりあえず
5/1
を記入,以下コピーして5/31まで準備します(後述)
B2は
=TEXT(A2,"aaa;;;")
以下コピー
シート2:
A列には年/月/日を記入します
簡単のためB列に「カウント」を用意します
B2:
=IF(A2="","",TEXT(A2,"yyyymmdd-")&COUNTIF($A$2:A2,A2))
以下コピー
邪魔ならB列は隠しておきます
C列,D列に名前,休暇種別を記入します
改めてシート1:
C2には
=IF(COLUMN(A2)/2>COUNTIF(Sheet1!$A:$A,$A2),"",VLOOKUP(TEXT($A2,"yyyymmdd-")&TEXT(COLUMN(A2)/2,"0"),Sheet1!$B:$D,MOD(COLUMN(A2)+1,2)+2,FALSE))
右にコピー,下にコピーして完成。
#参考
実際には無意味に数式を複雑にしないため
C2には
=IF(COLUMN(B2)/2>COUNTIF(Sheet1!$A:$A,$A2),"",VLOOKUP(TEXT($A2,"yyyymmdd-")&COLUMN(B2)/2,Sheet1!$B:$D,2,FALSE))
D2に
=IF(C2="","",VLOOKUP(TEXT($A2,"yyyymmdd-")&COLUMN(B2)/2,Sheet1!$B:$D,3,FALSE))
と記入,C2:D2を2つセットで右に下にコピーします。
#ご利用のエクセルのバージョンがご相談に書かれていませんが,エクセル2007以降ならもっと簡単な数式に出来ます。ご相談投稿では,普段ご利用のソフトのバージョンまでキチンと明記することを憶えて下さい。次回以降のご参考に。
#参考:
A2の5/1は,実際にはどこかのセルに年と月の数字を記入して計算によって表示させ,さらにセルの書式設定の表示形式のユーザー定義で
d日
のように設定して表示を整えます。
A列の縦のカレンダーを計算式で上手に表示する方法について,別途ご相談を投稿して解決して下さい。
詳しくやり方を書いていただきありがとうございます。
バージョンとか書くの忘れてました・・・・。投稿の仕方も教えていただきありがとうございます。(何を使用しているかわからないと答えようが無いですものね・・。)
こんなに早く回答がもらえるとは思ってなかったし親切に教えていただけるとは考えていなかったのですごく嬉しいです。
これから早速試してみます。本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
つい集めてしまうものはなんですか?
人間誰もは1つ「やたらこればかり集めてしまう」というものがあるもの。 あなたにとって、つい集めてしまうものはなんですか?
-
チョコミントアイス
得意ですか?不得意ですか?できれば理由も教えてください。
-
ホテルを選ぶとき、これだけは譲れない条件TOP3は?
ホテルを探す時、予約サイトで希望条件の絞り込みができる便利な世の中。 あなたは宿泊先を決めるとき「これだけは譲れない」と思う条件TOP3を教えてください。
-
牛、豚、鶏、どれか一つ食べられなくなるとしたら?
牛肉、豚肉、鶏肉のうち、どれか一種類をこの先一生食べられなくなるとしたらどれを我慢しますか?
-
高校三年生の合唱祭で何を歌いましたか?
大人になると大人数で合唱する機会ってないですよね。 思い出すと、高校三年生の合唱祭が最後でした。 そこで、みんなの思い出の合唱曲を知りたい!
-
Excel2010 リスト型の予定表をカレンダーに反映させたい
Excel(エクセル)
-
エクセルカレンダーに予定表を反映したいです。
Excel(エクセル)
-
別シートのスケジュールリストをカレンダーに反映させたい
Excel(エクセル)
-
-
4
別シートの年間行事表をカレンダーに反映させたい
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでURL挿入後、名前を変...
-
エクセルで逆さまに印刷したい
-
列幅が変更できなくなった
-
エクセルで部屋番号や個人情報...
-
エクセルで1分あたりの作業量...
-
EXCELのデータ修正時に、...
-
EXCELで千円単位を百万円単位に
-
一つのセルに計算式を入れて別...
-
エクセル関数使用で赤色数字を...
-
エクセルでの順位に応じた点数...
-
エクセルで前月までの平均を出...
-
Excel 干支を表示する VBA?
-
条件付き書式とOR関数
-
画像(GIF/JPEG Image)をエ...
-
数値0をカウントしない。エクセ...
-
だれ?
-
「マネージメント」と「マネジ...
-
小さな会社の事務全般の社員。...
-
A4シール紙を手差し印刷できる...
-
先月退職した会社へ,書類記入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでURL挿入後、名前を変...
-
エクセル関数使用で赤色数字を...
-
EXCELで千円単位を百万円単位に
-
エクセルで逆さまに印刷したい
-
列幅が変更できなくなった
-
EXCELのデータ修正時に、...
-
エクセルでの順位に応じた点数...
-
エクセルで入力のあるセルのみ...
-
エクセルで1分あたりの作業量...
-
エクセルでこれをやってみたい...
-
エクセルで前月までの平均を出...
-
画像(GIF/JPEG Image)をエ...
-
一つのセルに計算式を入れて別...
-
Excel・プラス値とマイナス値を...
-
excel2007で特定の行が印刷され...
-
表に日付と担当者を入力すると...
-
エクセルで部屋番号や個人情報...
-
3つの条件のうち、2つを満た...
-
複数のセルに入力された年、月...
-
エクセルのファイルでメモリが...
おすすめ情報