いつもお世話になっています。
最後の質問をさせてください。

A列に西暦入りの日付け
B列に曜日
C列に祝日

M列(たて)に2100年までの西暦
3行目(よこ)に元旦、成人の日などの祝日名、祝日名の下に計算した祝日が2100年まで入っている祝日表を作りました

C列にこの表を参照して祝日名を表示させる関数を教えてください。どうぞよろしくお願いします。
HLOOKUPでやったら一番上の2006年しか検索されませんでした。(涙)

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

A 回答 (6件)

mike_g です。



力づく(?)で考えてみました。

     M     N  O   P  Q   R  S   T  U   V  W
1  祝日名     2006    2007    2008    2009    2010
2  元日     1/1  日 1/1  月 1/1  火 1/1  木 1/1  金
3  振替休日   1/2  月
4  成人の日   1/9  月 1/8  月 1/14  月 1/12  月 1/11  月
5  建国記念の日 2/11  土 2/11  日 2/11  月 2/11  水 2/11  木
6  振替休日         2/12  月
7  春分の日   3/21  火 3/21  水 3/21  金 3/21  土 3/21  日
8  振替休日                         3/22  月
9  みどりの日  4/29  土 4/29  日 4/29  火 4/29  水 4/29  木
10 振替休日         4/30  月
11 憲法記念日  5/3  水 5/3  木 5/3  土 5/3  日 5/3  月
12 国民の休日  5/4  木 5/4  金       5/4  月 5/4  火
13 こどもの日  5/5  金 5/5  土 5/5  月 5/5  火 5/5  水
14 海の日    7/17  月 7/16  月 7/21  月 7/20  月 7/19  月
15 敬老の日   9/18  月 9/17  月 9/15  月 9/21  月 9/20  月
16 国民の休日                   9/22  火
17 秋分の日   9/23  土 9/23  日 9/23  火 9/23  水 9/23  木
18 振替休日         9/24  月
19 体育の日   10/9  月 10/8  月 10/13 月 10/12 月 10/14 木
20 文化の日   11/3  金 11/3  土 11/3  月 11/3  火 11/3  水
21 勤労感謝の日 11/23 木 11/23 金 11/23 日 11/23 月 11/23 火
22 振替休日              11/24 月
23 天皇誕生日  12/23 土 12/23 日 12/23 火 12/23 水 12/23 木
24 振替休日         12/24 月

1.上に示すのが“力づく”休日表。N列の 1/1、1/2 等の日付は文字列で
  入力
2.[ユーザー定義]で aaa に書式設定したセル O2 に式 =(N$1&"/"&N2)*1
  を入力して、此れを下方にズズーッと複写。P列以右も同様
3.下表において、[ユーザー定義]で aaa に書式設定したセル B2 に式 =A2
  を入力
4.セル C2 に次式を入力
  =IF(ISERROR(OFFSET($M$2,MATCH(A2,OFFSET($M$2,0,MATCH(YEAR(A2),years,0),16,1),0)-1,0,1,1)),"",OFFSET($M$2,MATCH(A2,OFFSET($M$2,0,MATCH(YEAR(A2),years,0),16,1),0)-1,0,1,1))
5.範囲 B2:C2 を下方にズズーッと複写

    A    B    C
1  年月日   曜 祝日名
2  2006/01/01 日 元日
3  2006/01/02 月 振替休日
4  2006/01/03 火
-  ---------- --
9  2006/01/08 日
10 2006/01/09 月 成人の日
11 2006/01/10 火
-- ---------- --
42 2006/02/10 金
43 2006/02/11 土 建国記念の日
44 2006/02/12 日
-- ---------- --
    • good
    • 0
この回答へのお礼

ありがとうございました!今日1日参考にしながら完成してOKがでました~☆うれしいです。顔も知らない人のためにこんなによくしてもらって1ヶ月カレンダーに悩まされてたのがおかげさまで今日で開放です!!!本当にありがとうございました。本当に感謝です!!!
いままでアドバイスくれた方々もありがとうございました。

お礼日時:2006/05/17 16:48

(たびたび 済みません)



No.4 における OFFSET関数中の years は、範囲 M1:W1 に付けた名前です。
    • good
    • 0
この回答へのお礼

ありがとうございました!

お礼日時:2006/05/17 16:51

No.4 における OFFSET関数中の引数 16 は 30 くらいに変更願います。

    • good
    • 0
この回答へのお礼

ありがとうございました☆

お礼日時:2006/05/17 16:50

「祝日表」のイメージが沸かないので、もっと具体的に説明して欲しいです。


次のような縦型祝日表ではだめですか?

年月日   祝日名
2006/01/01 元日
2006/01/09 成人の日
2006/02/11 建国記念の日
2006/03/21 春分の日
2006/04/29 みどりの日
2006/05/03 憲法記念日
2006/05/04 国民の休日
2006/05/05 こどもの日
2006/07/17 海の日
2006/09/18 敬老の日
2006/09/23 秋分の日
2006/10/09 体育の日
2006/11/03 文化の日
2006/11/23 勤労感謝の日
2006/12/23 天皇誕生日
2007/01/01 元日
----/--/-- -----
2010/12/23 天皇誕生日

どうしても横型祝日表にしたいのなら次のように出来ませんか?

年月日 2006/01/01 2006/01/09 2006/02/11  …
祝日名 元日    成人の日  建国記念の日 …

この回答への補足

アドバイスありがとうございます。このカレンダーを作るときに10年分の話だったので↑のように10年分縦型の表を作ってVLOOKUPで反映?させたら上司からNGが出てしまったんです。(涙)こんなダラダラ書いて!みたいな(汗)なので2100年まで延長になり、いろいろな方法で作ったのですがどれもNGで上司の理想はA列に西暦入り(別セルNG)の日にち、B列に曜日、F列に1月からの祝日日(計算式で)、G列に祝日名を1年分いれてC列にそれをまわす数式を入れるっていうんですが、西暦が邪魔してどうしてもできずにいたら「じゃー表を作りなさい」ってなり現在にいたります。
   元旦  振替休日 成人の日 建国記念日 ・・・
2006 2006/1/1 2006/1/2 2006/1/9 2006/2/11 ・・・    
2007 2007/1/1      2007/1/8

補足日時:2006/05/16 09:05
    • good
    • 0

#1のmshr1962です。


すみません閉じ括弧とカンマ一つ抜けてました。
=LOOKUP(A1,OFFSET($N$4,MATCH(YEAR(A1),$M$4:$M$100),,,25),$N$3:$AL$3)

OFFSET(基準,行の移動値,列の移動値,高さ,幅)です。
ですので最後の,,,25は「,列移動無し,高さ1行,幅25列」の意味
これでその年の祝日の行を比較対象にしています。

MATCH関数の方は
MATCH(YEAR(A1),$M$4:$M$100)
最後の引数は省略ですね。
これでその年のある行を抽出できます。

今年の場合は
=LOOKUP(A1,$N$4:$AL$4,$N$3:$AL$3)
という式を使ったのと同じになります。
    • good
    • 0
この回答へのお礼

お返事おそくなりました。すみません。詳しいご解説ありがとうございました!わかりやすく説明していただいて初心者の私でも理解でき「お~!!」ってなりました!!でも数式を入れると#N/Aって出てしまいます(涙)日にちはA4から始まっているのでいただいた数式をA1からA4に変えOFFSETの幅25列を26列(会社の創立記念日で1日祝日が増)に変えました。

お礼日時:2006/05/16 09:05

     N3=成人の日 O3=建国記念日


M4=2006 N4=2006/1/9 O4=2006/2/11
M5=2007 N5=2007/1/10 O5=2007/2/11
とかなってるのでしょうか?
=LOOKUP(A1,OFFSET($N$4,MATCH(YEAR(A1),$M$4:$M$100,,25),$N$3:$AL$3)
みたいに年によって比較する行を変えるように数式を組まないと駄目ですね。
    • good
    • 0
この回答へのお礼

早速のお返事ありがとうございます。
OFFSETは愛用?の関数辞典サイトに載っていなかったので勉強になります。
質問なのですがMATCH関数の最後の ~,,25)の25はどんな意味があるのですか?本には-1~1しかなく調べたのですがわかりませんでした。あと,,は2つありますがこれの意味も教えてください。お手数かけますがよろしくお願いします

お礼日時:2006/05/15 16:34

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

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

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

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

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

Qエクセル形式のカレンダーに土日祝日に色をつけるには

エクセル形式のカレンダーに土日祝日に色をつけるにはどうすればいいでしょうか?

手作業で色をつけるのではなく、スタートに任意の月日を入力すると約3ヶ月の日にちと曜日は出るのですが、そこに日曜と祝日は赤、土曜は青、ノー残業デーの水曜は緑などと色をつけたいのです。

特に毎年変わる祝日がむずかしくてやり方が思いつきません。

Aベストアンサー

規則性のない(祝日など)に色をつける方法
F1:F3に
2006/7/2
2006/7/8
2006/7/13
これらの日のセルに色をつける。
A1:A14に日付シリアル値が入っているとする。
2006/7/1
2006/7/2
2006/7/3
2006/7/4
2006/7/5
2006/7/6
2006/7/7
2006/7/8
2006/7/9
2006/7/10
2006/7/11
2006/7/12
2006/7/13
2006/7/14

A1:A14を範囲指定して
書式
条件付き書式
数式が
=A1=VLOOKUP(A1,$F$1:$F$3,1,FALSE)
書式としてセル色を適当に設定。
OK
で指定3日に色が付きました。

Qエクセルで土日祝日休日を自動で色塗りしたい

はじめて投稿します。エクセルで日程表(既存フォームあり)を作っていますが年月を入力してその日付(1~月末まで)を自動表示することはできるのですが土日、祝祭日、その他休日を色塗りするにはどうしたらよいでしょうか?

Aベストアンサー

条件付き書式で実現できます

新たに説明するより、過去に同じ質問がたくさんあるので、そちらをご覧いただく方が早いと思います

http://oshiete1.goo.ne.jp/qa2240872.html
これ以外にも「祝日 色」でこのカテゴリ内を検索してみて下さい。

Qエクセルで毎年、日にちが異なる祝日(成人の日等)の返し方

エクセルでカレンダーを作成しようとしていますが、
つまづいてしまったので、どなたか教えていただけないでしょうか

A1セルに指定年月日(例:平成19年1月1日)と
入力したら、該当月の日にちと曜日を表示させ
土日はセルの色を変えるというところまで
できたのですが、さらに出勤しない日(国民の祝日)も
セルの色を変えたいと思っています。

カレンダーとは別のシートなどに国民の祝日リストを
作成し、条件付き書式でmatch関数を利用して、
国民の祝日リストに合致したセルも色を変えたいのですが、
元旦やこどもの日のように月日が決まっている祝日ではなく
成人の日や海の日など、ある月の第2月曜日という祝日の場合、
A1セルの指定年月日から当該年の成人の日等を返すことは
できるのでしょうか?

説明がわかりにくいかもしれませんが、要は、
A1セルが2007/1/1の時に
B1セルに当月の第2月曜日を返す
C1セルに7月の第2月曜日を返す
ということは可能なのでしょうか?

よろしくお願い致します。

Aベストアンサー

◆いろんな式がありますが、これを使っています
>A1セルが2007/1/1の時に
>B1セルに当月の第2月曜日を返す
>C1セルに7月の第2月曜日を返す
B1=DATE(YEAR(A1),MONTH(A1),7*2-WEEKDAY(DATE(YEAR(A1),MONTH(A1),0),3))
C1=DATE(YEAR(A1),7,7*2-WEEKDAY(DATE(YEAR(A1),7,0),3))

Qエクセル 祝日の関数を教えてください

条件付き設定で土、日、祝日に色を付けたカレンダーを作っています。

曜日の色の付け方はいろいろあるようですが、今回は

土曜日・・・=WEEKDAY($A1)=7
日曜日・・・=WEEKDAY($A1)=1

=WEEKDAY($A1)=の後に、土曜日は「7」、
日曜日は「1」で作りました。

そこで質問ですが、祝日の場合には「=」の後の数字をいくつで設定するのでしょうか?

よろしくお願いします。

Aベストアンサー

Excel(エクセル)実用編:カレンダーの作成例
http://www.eurus.dti.ne.jp/~yoneyama/Excel/jituyou/calendar.htm
・祝日の色を変更します。 

ご参考まで。

QEXCELでカレンダーの祝祭日を表示する関数がありますか?

EXCELでカレンダーを作成したのですが、祝祭日も自動的に表示させたいのですが、どのようにすればいいのでしょうか。
たとえば「A列;2008/3/20」であれば「B列;春分の日」と表示させたいのです。

Aベストアンサー

こんにちは。

http://oshiete1.goo.ne.jp/kotaeru.php3?qid=2631908
Nil さんという方の
国民の祝日 関数は、お勧めです。
標準モジュールに登録すればよいです。

後は、普通の関数のようにつかえます。

QExcelによる土日と祝祭日の算出関数

役所でExcelを人並みに使っていると思いますが,最近になって色々と関数を駆使しようと思いついたのが,Excelによる土日と祝祭日の算出関数です。色々と試みてみたのですが,全く×です。セルに対してどのようにすればいいのかヨロシクご教授ください。

Aベストアンサー

>Excelによる土日と祝祭日の算出関数です
質問の意味が2つに取れる(算出?)
(1)ある日を考えて土か日か祝日か判定する場合
   =WEEKDAY("2004/12/15")か=WEEKDAY(A1)のように
  聞いて
   土  7
   日  1
  かどうかで判る。コードの表現種類に他2種類ありま  す。
  祝日は各国固有で日本は年により移動するので、関数
  がなく、関数では判定できない。ユーザー関数を作る
  よりほかない。万年向けのものは難しそう。
(2)ある期間を考えて、土日祝日を除いて、それ以外が
  何日あるかを算出する関数
   NETWORKDAYS関数があります。
   NET(正味の)のWORKDAYの意味でNET   WORKのDAYではない。最後のSを落とさない   ように。
  ただし祝祭日は関数内に手入力で指定する。
  例えば=NETWORKDAYS("2004/12/15","2004/12/25",{"2004/12/23"})で7と出ました。
土日と祝祭日と重なっていてもOK。
「アドイン」関数なので、エラーが出る場合は組みこむ必要があります。
あとWORKDAY、DATEDIFを使えれば、日付関係はほぼ全てでしょう。

  
  

>Excelによる土日と祝祭日の算出関数です
質問の意味が2つに取れる(算出?)
(1)ある日を考えて土か日か祝日か判定する場合
   =WEEKDAY("2004/12/15")か=WEEKDAY(A1)のように
  聞いて
   土  7
   日  1
  かどうかで判る。コードの表現種類に他2種類ありま  す。
  祝日は各国固有で日本は年により移動するので、関数
  がなく、関数では判定できない。ユーザー関数を作る
  よりほかない。万年向けのものは難しそう。
(2)ある期間を考えて、土日祝日を除いて...続きを読む

QVBとアクセスでSQL文に変数を使いたいのですが

したいことはレコードの挿入をSQL文で変数を使用して処理したいのですがうまく動作してくれません

StrSQL_1 = _
"insert into 行先情報テーブル (社員ID, 行先, 帰社予定時刻, 備考)" & _
"values (7,'(変数1)','(変数2)','(変数3)')"

変数の部分が置き換わりません、いろいろ調べてみたのですがどうもわかりませんvaluesでは変数を使えないのでしょうか?

もしそうだとするとどのようにすればレコードを挿入するSQL文で変数を利用できるのかをおしえていただけないでしょうか

Aベストアンサー

文字列なんで、&で連結すればOKです。

StrSQL_1 = _
"insert into 行先情報テーブル (社員ID, 行先, 帰社予定時刻, 備考)" & _
"values (7,'" & 変数1 & "','" & 変数2 & "','" &(変数3)& "')"

Qアクセス日付時刻の自動入力について。

アクセス2000を使用しています。
日付入力を自動的に本日の日付で入力出来るように、
=Date()としたのですが、これに、時間もつけるようにしたいのと、表示を、平成**年**月**日**時**分としたいのですが、どのようにすればよいのでしょうか??
ちなみにVBAはむずかしくて使用出来ません。

Aベストアンサー

こんにちは。maruru01です。

テキストボックスのプロパティで
書式:ggge\年m\月d"日 "h\時n\分
既定値:=Now()
とすればいいと思います。

あと、ユーザーが変更出来ないようにするなら、
使用可能:いいえ
編集ロック:はい
にしておけばいいでしょう。

QAccessのマクロでモジュールを実行させたい。

Access2002を勉強中の初心者です。

AccessでDB1という名前のデータベースを作成し、その中で、モジュール1というモジュールを作成しました。これを実行するマクロを作成したく、次のようにマクロを作成しました。
マクロのデザイン画面でアクションに「プロージャの実行」を選択、プロージャ名入力覧の右側の...のボタンを押して式ビルダ画面を表示、ここの「関数」フォルダを開いてDB1を選択、表示されたモジュール1を貼り付けてOK。
しかし、このマクロを実行すると、次のエラーとなります。「DB1 指定されたDB1が見つけることができない関数名が含まれています」

根本的に方法が間違っているのでしょうか?
アドバイスをよろしくお願いします。

Aベストアンサー

#1です。

ちょっと時間ができたので、Accessのヘルプで、
 "RunCode/プロシージャの実行" アクション
についてのトピックを見てみました。

結論から言うと、基本的な考え方が間違っているみたいです^^;。

「プロシージャの実行」アクションでは、「Function」プロシージャを指定するようです。
Subプロシージャではエラーになります。


つまりご質問の件では、
「Subプロシージャを呼び出すFnctionプロシージャ」をまず書かなけれえばならない。
そして、マクロのアクションでは、あらためてこのFunctionプロシージャを指定しなければいけません。

QACCESSに同時アクセス(編集)をしたい

教えてください。
ACCESSのDBに複数のユーザが同時にアクセスして、
データを追加・編集したいのですが、
やはり、不可能でしょうか?

Aベストアンサー

マイクロソフトのアクセスに同時に複数のユーザが同時にアクセスして
データベースを操作することは可能です。いくつかの方法がありますが、
昔私が簡便に行なっていた方法は「テーブルのリンク」です。

あるコンピュータにアクセスでdb1という名前のデータベースを作って
ここにデータを格納しておきます。

他方で別のコンピュータに、アクセスでdb2という名前のデータベースを作ります。

このdb2というデータベースのメニューで

「ファイル」->「外部データの取り込み」->「テーブルのリンク」

というのがありますから、最初に作ったdb1をたどり、リンクしたいテーブルを
選択します。

こうすることにより、db2にdb1のテーブルがリンクされ(リンクテーブルと
呼ばれます。アイコンが通常のテーブルと違います。)、db1に格納された
データをdb2で編集することができます。

db2で、db1からのリンクテーブルを元にクエリーを作成することもできます。
リンクテーブルに対してできないことはテーブル構造の変更くらいで
他のことはだいたいできると思っていいかと思います。

このような形をとれば、ローカルエリアネットワーク内の複数のコンピュータ
から同時に同じアクセスデータベースにアクセスすることは可能かと思います。

このやり方にはおそらく問題もあるだろうと思うのですが、昔私がやって
いた頃は、特段支障もなく業務を行なうことができました。問題は、これを
読んだ他の誰かが指摘してくださるかと思います。

同じレコードに複数ユーザが同じタイミングでアクセスするとややこしい
ことになります。これを回避するためには、db2にワークテーブルを備えておき、
リンクテーブルからレコードを一度db2に格納し、編集を終了したのちに
リンクテーブルのレコードを削除し、ワークテーブルで編集したレコードを
リンクテーブルに追加する、などのルーティンをマクロやVBAで構築するのが
よいかと思います。私はそのようにしていました。

他に、ADOを使う方法などもあります。方法はいくつかありますから、
少し研究してみるといいですよ。(^-^)

マイクロソフトのアクセスに同時に複数のユーザが同時にアクセスして
データベースを操作することは可能です。いくつかの方法がありますが、
昔私が簡便に行なっていた方法は「テーブルのリンク」です。

あるコンピュータにアクセスでdb1という名前のデータベースを作って
ここにデータを格納しておきます。

他方で別のコンピュータに、アクセスでdb2という名前のデータベースを作ります。

このdb2というデータベースのメニューで

「ファイル」->「外部データの取り込み」->「テーブルのリンク」
...続きを読む


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

人気Q&Aランキング