人に聞けない痔の悩み、これでスッキリ >>

会社でExcel2007を使用しています。

来年(2017年)の予定表とカレンダーを作成中です。
添付のカレンダーは月ごとにシートが分かれており、今現在、手動作成してあるため、条件付き書式や数式は入っていません。
カレンダーとは別に、祝日のみを入力するシートがあります。
このカレンダーのシート(添付資料でいうと2017年1月、2月のシート)B6~H31の格子部分を通常のカレンダーのように、合致した場所に日にちが自動で入力(2017年1月の場合、月初めが日曜日なので、格子内の日曜日の列(B7)に「1日」、2017年2月の場合、月初めが水曜日なので、格子内の水曜日の列(E7に)「1日」)がされ、土日祝日部分は、自動で塗りつぶされるようになって、1月なら1月のみの日にちの表示(1月のカレンダーに、2月の1~4日を表示させないようにしたい)が出来ると大変ありがたいのですが…。

ご回答していただく際、大変なお手間だと思いますが、どうか未熟な私にどうぞご教示ください。
よろしくお願いいたします。

「Excel2007 カレンダーの作成方法」の質問画像

このQ&Aに関連する最新のQ&A

A 回答 (3件)

こんばんは!



画像を拝見すると1日に付き、5行使っているのですね?
これが結構厄介です。
無理やりやってみました。
わざわざ月ごとにシートを変える必要はないと思うのですが、
一月ごと別シートにする場合でもやり方は一緒です。

① まず別シートに↓の右側の画像のように祝日一覧のデータを作成しておきます。
② 右側シートのB列を「祝日」と名前定義します。
(B列を範囲指定 → 名前ボックス(セル番地が表示されている窓)に 祝日 と入力しEnter!)
これで範囲指定したセルが「祝日」と名前定義されます。
③ カレンダーSheet(左側シート)のD1セルに
=DATE(A1,A2,1)
という数式を入れ、セルの表示形式はユーザー定義から mmm としています。
このD1セルのシリアル値を利用します。
④ B7セル(セルの表示形式はユーザー定義から d としています)に
=IF(MONTH($D$1-WEEKDAY($D$1)+COLUMN(A1)+7*(ROW(A5)/5-1))=$A$2,$D$1-WEEKDAY($D$1)+COLUMN(A1)+7*(ROW(A5)/5-1),"")
という数式を入れます。
⑤ B8セルに
=IF(COUNTIF(祝日,B7),INDEX(Sheet2!$A$1:$A$17,MATCH(B7,祝日,0)),"")
という数式をいれます。
これで祝日名が表示されます。
最後に一番厄介な条件付き書式です。
B7・B8・B9・B10・B11セルすべてのセルに同じ条件付き書式を設定します。
B7セルを選択 → 条件付き書式 → 新しいルール → 数式を使用して・・・ → 数式欄に
=COUNTIF(祝日,B7)
という数式を入れ → 書式 → 塗りつぶしから「赤」を選択しOK
同様にB8セルにも条件付き書式を設定
数式もB7セルと全く同じ数式にします。
この操作をB11セルまですべてのセルに設定します。
(B11セルまで数式はすべて同じです)

そしてB7~B11セルを範囲指定 → B11セルのフィルハンドルで右へコピー! → そのまま下へ5行ずつコピー!
これで細かい設定は完了です。

最後に日曜の列を範囲指定 → 「赤」で塗りつぶし
土曜の列を範囲指定 → 「青」で塗りつぶし

以上で↓のような感じになります。

※ これでA2セルの「月」の数値を変更するだけで
好みの月のカレンダーができます。

※ フィル&コピーした場合、書式もコピーされてしまうため
日・土曜の塗りつぶしは最後に行います。m(_ _)m
「Excel2007 カレンダーの作成方法」の回答画像2
    • good
    • 2
この回答へのお礼

大変詳しくご回答していただき、本当にありがとうございます。
教えていただいた方法を活かして、カレンダーを作成させたいと思います。
ご回答に、時間を割いて頂きまして、とても感謝しております。
本当にありがとうございました。

お礼日時:2016/10/30 10:35

【超便利!】Excel(エクセル)でカレンダーを作成する方法


http://techacademy.jp/magazine/9927
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。
参考にさせていただきます。

お礼日時:2016/10/30 10:41

あまり細かいことは教えられませんが、私も先日カレンダーを作りました。

元は、Mcirosoft のテンプレート・カレンダー(名前は「一年間カレンダー」で、それに祭日を赤にするように作り変えました。

さて、条件付き書式なのですが、日付を表す数式が見えないので、具体的には教えられませんが、

基本的なことを言うと、1月24日の5行目あたりに、条件付き書式の数式は、

=Day(日付) <15
書式は、薄い色 (または、書式の表示形式[;;;]で完全に見えなくなります)

のようにします。15というのは、たぶん、万年カレンダーで、それだけ行が上下することを考えられてつくられているようです。日付の部分は、シリアル値になっていないといけません。表示形式だけで、「24日」になっていればよいのですが、文字列になっていたりすると、少し厄介だと思います。数字に直さなくてはなりません。

祭日
=ISNUMBER(MATCH(B6,holiday,0))
ちなみに、祭日は、B6 は任意の場所で、R1C1方式では、RC という場所です。

holidayは、祭日一覧のリストを名前登録したものです。
holidayの祭日一覧は、私の自作の関数で作った、アドインの万年祭日関数からです。国民の祭日・休日?が加わるたびに、変更しています。毎年、間違いが出るかはチェックしていますが、狂いもなく出てくれているようです。
    • good
    • 0
この回答へのお礼

大変詳しい解説とご回答をありがとうございます。
とても勉強になりました。
今後、教えていただいた方法を活かせるように頑張りたいと思います。
ありがとうございました。

お礼日時:2016/10/30 10:39

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル2007 カレンダーに予定を反映したいです

エクセルに詳しい方、得意な方、ご回答をお願いいたします。
エクセル2007で、予定表とカレンダーを作成しております。
エクセルの予定表シートG列(G14~下の列)のイベント(予定)内容を、1月シートA12:H41の各日付に合致した場所(1/1の場合A13~A17(日にちが入力されているセル(A12)は除く)へ反映させたいのですが、その場合のマクロコードもしくは数式を教えて下さい。
なお、添付資料では、カレンダーシートは1月のみ表示となりますが、実際は、月ごとに分かれた1月~12月までのシートがあります。
ご回答いただくのに、大変お手間になると思いますが、どうぞよろしくお願いいたします。

Aベストアンサー

No.4です。

条件付き書式の設定について・・・
この際ですので、日・祝日・土曜の色付けも条件付き書式でやってしまった方が簡単だと思います。
前回回答した最後の日・土曜の塗りつぶしは「なし」にしておいてください。
そして祝日データに関しては「祝日」と名前定義してあるとします。

画像の配置だとA11~A14セルすべてに同じ条件付き書式の設定を行います。
(数式はすべて同じです)
一つのセルに条件付き書式を二つ設定します。
① 日・祝日の設定
A11を選択 → 条件付き書式 → ・・・中略・・・ → 数式欄に
=OR(WEEKDAY(A11)=1,COUNTIF(祝日,A11))
として → 書式 → 塗りつぶしから「赤」を選択しOK
この操作をA14セルまで行う。

② 土曜の設定
同様にA11セルを選択 → 条件付き書式 → ・・・中略・・・ → 数式欄に
=WEEKDAY(A11)=7
という数式を入れ → 書式 → 塗りつぶしから「青」を選択しOK
この操作をA14セルまで行う。

複数の条件付き書式を設定すると優先順位がありますので、
↓の画像のように「赤」の条件付き書式が上になるように赤丸部分の▲・▼をクリックし優先順位を入れ替えます。

最後にA11~A14セルを範囲指定 → A14セルのフィルハンドルで右へコピー → そのまま4行ずつ下へコピー!

これでなんとかお望みどおりにならないでしょうか?m(_ _)m

No.4です。

条件付き書式の設定について・・・
この際ですので、日・祝日・土曜の色付けも条件付き書式でやってしまった方が簡単だと思います。
前回回答した最後の日・土曜の塗りつぶしは「なし」にしておいてください。
そして祝日データに関しては「祝日」と名前定義してあるとします。

画像の配置だとA11~A14セルすべてに同じ条件付き書式の設定を行います。
(数式はすべて同じです)
一つのセルに条件付き書式を二つ設定します。
① 日・祝日の設定
A11を選択 → 条件付き書式 → ・・・中略・・・ →...続きを読む

Qカレンダー作成 別シートよりデータ反映

目的は仕事で何日に誰が休むむかを一目で知りたくてエクセルで作成したカレンダーを作りました(縦型日付表示) 現在は届けの用紙が来たらカレンダーに手打ちしてます。

(シート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 みかん 休みを出せません
あまりエクセルなどに詳しくなく、他の数式なども活用できるのかこういう表がそもそもエクセルでできるのかも勉強不足でわかりません。なんだかマネて作成したらあまりに長くて引数が足りませんみたいな表示がでました。
お手数をおかけしますが、教えていただけたら嬉しいです。よろしくお願い致します。

目的は仕事で何日に誰が休むむかを一目で知りたくてエクセルで作成したカレンダーを作りました(縦型日付表示) 現在は届けの用紙が来たらカレンダーに手打ちしてます。

(シート1) 種類は名前に色分けをしたかったので種類を入れてます。
      (上手く作成できたら種類によって名前に色わけとかしたくて種類を作りました)
       横に名前が出るようにしてます。同じ日に休みの人が増えれば HIJKと横に続きます。
  A      B    C      D     E      F     G...続きを読む

Aベストアンサー

こんばんは!
お望みの方法とは異なるかもしれませんが、手っ取り早く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

こんばんは!
お望みの方法とは異なるかもしれませんが、手っ取り早く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セル(セルの表示形式はユーザー定義...続きを読む

Qエクセル カレンダーを作って予定を入力

エクセルでカレンダーを作り、予定を入力します。
年月の入力欄をいじれば、その年や月のカレンダーに切り替わる仕様です。
しかし、入力した予定はそのままのセルにあるだけです。
当たり前と言えばあたりまえなのですが。

4月のカレンダーには4月の予定、5月のカレンダーには5月の予定と、切り替えられる仕様にする方法はありませんか。

Aベストアンサー

カレンダーの形が縦長のものと曜日(日~土)の下に一週間分の日付が入ったものと二通りあります。
予定も決まった日、毎週月曜日、毎月第一月曜日といった周期的なもの色々あります。

一番単純なパターンとして
カレンダーは縦長で添付のように

A列:日付 B列:曜日 C列:予定

予定表は単純に決まった日のみとします(周期的なものも決まった日として入力しておきます。
この予定を少し離れた列(F列:予定日 G列:予定の内容をに配置します。
予定表、カレンダーは3行目から始めるとします。
即ちA3が1日、予定欄は何行必要でしょうか
毎日何かの予定があるとして365行ですのでF3~G367となります。

A1の書式はユーザ設定 ggge"年"m"月"
その他のA列の書式は d"日"
A3=A1-DAY(A1)+1 の式を入れて、A1にTODAY()関数で
自動で月めくりもしてくれます。

B3=TEXT(A3,"aaa")
C3=IF(VLOOKUP(A3,$F$3:$G$367,2,FALSE)=0,"",VLOOKUP(A3,$F$3:$G$367,2,FALSE))

カレンダーの形が縦長のものと曜日(日~土)の下に一週間分の日付が入ったものと二通りあります。
予定も決まった日、毎週月曜日、毎月第一月曜日といった周期的なもの色々あります。

一番単純なパターンとして
カレンダーは縦長で添付のように

A列:日付 B列:曜日 C列:予定

予定表は単純に決まった日のみとします(周期的なものも決まった日として入力しておきます。
この予定を少し離れた列(F列:予定日 G列:予定の内容をに配置します。
予定表、カレンダーは3行目から始めるとします。
即ちA3...続きを読む

QEXCEL2007でカレンダーを表示する方法

EXCEL2007を使用しています。

前のバージョンのエクセルではオブジェクトの挿入でカレンダーが表示
されたと思うのですが、2007でも同様の機能はあるのでしょうか?
オブジェクトの挿入にはなかった様に思えましたので質問させていただきました。

またVBAで同様にカレンダーを作成できるのであれば教えていただければありがたいです。

よろしくお願いします。

Aベストアンサー

リボンに[開発] タブが無ければ、
下記を参考に[開発] タブを表示してください。
http://office.microsoft.com/ja-jp/excel/HA101730521041.aspx

[開発] タブの [挿入] をクリック。
右下の「コントロールの選択」のアイコンをクリック。
「カレンダーコントロール12.0」を選択して 「OK」をクリック。
シートの貼り付けたい場所をクリック。

以上です。

Q1.excelで年間予定表と別シートの月間予定表が連動した予定表を作成

1.excelで年間予定表と別シートの月間予定表が連動した予定表を作成したい。

2.別シートの月間予定表(1年分を横に並べている)では、月毎に
(1)当月分の左端に年間予定表の当月分、
(2)その右に、年間予定表の予定項目ごとに[列を与えて]整理して予定を書いている。

3.月間予定表の(1)を年間予定表と連動させたい。
即ち、年間予定表の予定項目を追加、書き換え、削除したとき、月間予定表の(1)が自動的に訂正されるようにしたい。

4.年間予定表は6月分をA4横1ページに、月間予定表は一月分をA4縦1ページにプリントアウトしている。画面で見るだけではなく、プリントも利用している。

 年間予定が時々変更になり、それに合わせて月間予定を書き変えねばならないので、連動すれば大変助かります。よろしくお願いします。






以下は多くの人にとって読む必要はないと思います。

ご助言の参考になればと思い、今使っている年間予定表・月間予定表の実態を示したものです。

☆年間予定表は1行目に月(1月から12月)
2行目以下は月ごとに、最左端(1月の場合A列)に日付、その次の列(1月の場合B列)に曜日 その次の列(1月の場合C列)に年間予定項目(例:箱根ドライブ、九州ドライブ、自治会総会…)を記入する。

☆別シートの月間予定表:
ア:各月ごと(例えば1月)の最初の3列は年間予定表(例えば1月)の月名、日付、曜日、年間予定項目をカット&コピーで張り付ける。
 又は、=関数を使う。即ち月間予定表のa列1行目に=を使って、年間予定表のa列1行目をもってくる。月間予定表のa列1行目を31日までドラッグして年間予定表に同期させる。同様のことを、残りの2列についても実行する。(この方法は1月分に3回、1年分で36回繰り返さなければならない。もっと楽な方法、ありません?)

イ:各月ごとの4列目から概ね10列目に年間予定項目ごとの詳細計画を記入する。
例えば、
4列目の1行目(タイトル行)箱根ドライブ
4列目の2行目以下の該当する日ごとに、(例えば4日)箱根の情報収集、(6日)旅館決定、(15日)ドライブ実施 
5列目の1行目(タイトル行)九州ドライブ
5列目の2行目以下の該当する日ごとに、(例えば8日)九州の情報収集、(10日)旅館決定、(11日)友人に連絡 (25日)ドライブ実施

以上です。

1.excelで年間予定表と別シートの月間予定表が連動した予定表を作成したい。

2.別シートの月間予定表(1年分を横に並べている)では、月毎に
(1)当月分の左端に年間予定表の当月分、
(2)その右に、年間予定表の予定項目ごとに[列を与えて]整理して予定を書いている。

3.月間予定表の(1)を年間予定表と連動させたい。
即ち、年間予定表の予定項目を追加、書き換え、削除したとき、月間予定表の(1)が自動的に訂正されるようにしたい。

4.年間予定表は6月分をA4横1ページに、月間予定表は一月分をA4縦1ペー...続きを読む

Aベストアンサー

>(2)I2セルに  =1*("2010年"&J$1&ROW()-1&"日")
=1*("2010年"&J$1&"1日")
で良いですねm(_ _)m
にしてください。1* を取ると 例として4月なら「2010年4月1日」になるはず。
1をかけることによって、シリアル値(数値)になります。

>I3セルに  =IF(DAY(I2)+1=DAY(I2+1),I2+1,"")
はI2セルがシリアル値なら計算されます。
単純に29日以降の処理なので 28日までは =I2+1だけでも同じ。

>(3)ただし、I2:I32セルの書式設定
問題なし。日付ではなく数値が出てくるので、見た目の問題だけ。
>(4)J2セルに  =IF(I2="","",INDEX(B2:G2,MATCH($J$1,$B$1:$G$1,0))&"")
これがメイン。
J1セル文字列で「4月」、 B1:G1セル文字列で 1月、2月、・・・
「4月」がどこにあるかをMATCH関数で探し、何番目かを数値で返す。
返された値をもとに、B2:G2セルの値を返します
「4月」が全角の「4月」になっていたり、空白が紛れていたりするなど、
完全一致していない可能性もありますので確認してください。

>(5)なお、「J1セルに月を入力すると、予定が切り替わる」ことが一番の望みなので上記のテストをしてみました。
良いと思います。

>ご指摘の「レイアウトが重要な気もしますが?」はその通りです。
レイアウトは、上記回答のレイアウトで目的が達成できそうなら不要です。
どのセルに何を入れているか。がわかれば、それに沿った回答をする。
そのほうが間違いな少なく、効率が良いじゃないですか。

>(2)I2セルに  =1*("2010年"&J$1&ROW()-1&"日")
=1*("2010年"&J$1&"1日")
で良いですねm(_ _)m
にしてください。1* を取ると 例として4月なら「2010年4月1日」になるはず。
1をかけることによって、シリアル値(数値)になります。

>I3セルに  =IF(DAY(I2)+1=DAY(I2+1),I2+1,"")
はI2セルがシリアル値なら計算されます。
単純に29日以降の処理なので 28日までは =I2+1だけでも同じ。

>(3)ただし、I2:I32セルの書式設定
問題なし。日付ではなく数値が出てくるので、見た目の問題だけ。
>(4)J2セルに  =IF(I2="...続きを読む

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

Qエクセルに入力後、別シートのカレンダーに自動的に記入方法

教えてください。
sheet1には受注管理表があります。
sheet2にはカレンダーを作っております。
sheet1に数量、納期欄を記入するところを作っており、納期欄に○月○日と挿入すると自動的にsheet2にカレンダーの○月○日に数量が入力できる方法があれば、教えてほしく。
宜しくお願いします。

Aベストアンサー

カレンダー側に数式を設定です。
カレンダーの該当するセルの日付と一覧表の日付が一致したら一覧表の同じ行の「数量」(だけでいいの?)を表示させれば良い。
 A  B  C  D
品名 数量 納期 納付先
とSheet1にあれば、
Sheet2のカレンダーのセルに
=INDEX(Sheet1!B:B,MATCH(DATE(年,月,日),Sheet1!C:C,0),0)
(年、月、日にはその値が入力されているセルを指定してください)
これで「日付」に一致したカレンダーのセルに「納期」の列にある値を拾うことができる。
・・・
ただしエラー処理はまったく考えていません。
日付が無い・値が無いなどでエラーが生じる場合は、ISERROR関数などで対処してください。

DATE関数でカレンダーの該当セルの日付を取得してください。
(ほとんどの場合、年、月、日がバラバラに入力されていて、日のセルにシリアル値が振られていない)


MATCH関数で参照先を「品名」や「納付先」の列にする事で「品名」「納付先」をそのまま拾うことができるので、
できればINDEX、MATCH関数を使うことを薦めます。

カレンダー側に数式を設定です。
カレンダーの該当するセルの日付と一覧表の日付が一致したら一覧表の同じ行の「数量」(だけでいいの?)を表示させれば良い。
 A  B  C  D
品名 数量 納期 納付先
とSheet1にあれば、
Sheet2のカレンダーのセルに
=INDEX(Sheet1!B:B,MATCH(DATE(年,月,日),Sheet1!C:C,0),0)
(年、月、日にはその値が入力されているセルを指定してください)
これで「日付」に一致したカレンダーのセルに「納期」の列にある値を拾うことができる。
・・・
ただしエラー処理はまったく...続きを読む

Qエクセルで日付の入力で、土日祝を自動的に抜いて、営業日だけ表示したい

 経理の仕事で、営業日だけの入力を一括で表示できる方法はないでしょうか?
こんな感じです......。
 1月5日
 1月6日
 1月7日
 1月11日
つまり、土日と祭日を抜いた表示を自動一括表示したいのです。わざわざカレンダーとにらめっこしなくても、エクセルはおりこうさんだから、できてもいいのではないか?と思うのですが、ヘルプで質問しても、満足のいく回答がなかったので、何卒よろしくお願いいたします。 

Aベストアンサー

No.2です。

ちょっと補足。
祝日一覧には、本当の祝祭日に限らず営業日から省きたい任意の日付を入れても構いません。
(会社の創立記念日や夏季・冬季休暇など)
逆に振替休日などはちゃんと入れておく必要があります。

Qエクセルのセルにカレンダーを表示させ、日付をセルに入力させたい

エクセルについて教えて下さい。

エクセルのセルをクリックすると、
カレンダーのようなものが表示され、
マウスで選択すると、
セルに日付が入力されるようにするには
どうしたらよいですか?

すみませんが、宜しくお願い致します。

Aベストアンサー

#02です。foo-mさんがVBAをお使いになるなら、以下のサンプルをいじってみてください。

このサンプルはC4セルがクリックされたときにカレンダーコントロールを表示して、日付を選んだらその日付をC4に書き込み、カレンダーコントロールを閉じるマクロです。

Private Sub Calendar1_Click()
Selection.Value = Calendar1.Value
ActiveSheet.Calendar1.Visible = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$C$4" Then
ActiveSheet.Calendar1.Visible = True
End If
End Sub

マクロはシートのモジュールとしてペーストして下さいね

Qエクセルで日付を別のシートに引用したい

エクセルもマクロも初心者です。

2008年8月29日  という日付を別シートに引用したいのですがうまくいきません。
情報として欲しいのは“2008年8月”の部分です。
調べてみたら文字の引用ができる関数があったので、実際に使ってみました。
LEFT(Sheet1!A1,9)
MID(Sheet1!A1,9)

どちらをやっても39689という数字が出てきます。
なぜこのようになるのでしょうか?

そして、どうすればうまく引用できるのでしょうか?

Aベストアンサー

日付はデータは1900/1/1を1とするシリアル値で扱われます。2008/8/29は、1900/1/1から数えて39689日目なので、シリアル値は39689になっています。

今回のように“2008年8月”と欲しいのでしたら、=Sheet1!A1 として、セルの書式設定で見た目上変えてやります。

または、シリアル値を文字列に変換しての表示になります。文字列に変換する際に、日は不要なので取ってしまいます。
=TEXT(Sheet1!A1,"YYYY年M月")


人気Q&Aランキング