• ベストアンサー

関数を教えてください。

万年カレンダーを作ろうと思います。C2に西暦 F2に月 ここからカレンダー表を作ります。B4~H4に日~土 を入力した時、B5に関数式『(=DATE(C2,F2,1)-(WEEKDAY(DATE(C2,F2,1))-1)』と入力しました。カレンダーは無事できたのですが、関数の説明がいまいち理解できません。明日、発表するのですが、質問をされると??です。教えてくださいー。お願いいたします。胃がいたいです。特に最後の『ー1』は何ですか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

=DATE(C2,F2,1)-(WEEKDAY(DATE(C2,F2,1))-1)) 2005年9月のカレンダーを作るとして、 これの意味をひとつひとつ考えてみましょう。 ●DATE(C2,F2,1)  C2に2005、F2に9が入ります。最後は定数で1が入っています。  ということは、この式は「2005/9/1」を表します。  ほかの月の場合でも、その月の1日を表す式ですね。  さて、今年の9月1日は、木曜日です。  B5は日曜日の場所ですよね。  日曜日は木曜日の4日前です。  したがって、4日分を前に戻して、8月28日にしなければ  なりません。それを補正するのが後の式です。 ●-(WEEKDAY(DATE(C2,F2,1))-1)  Weekday関数は、日曜日=1、月曜日=2・・・土曜日=7を  返す関数です。  2005/9/1は木曜日ですから、5を返します。  先ほど、木曜から日曜日を見た4日前には一つ多すぎます。  そこで、5から1を引いて4に合わせるんですね。 ●なぜ1か?  この式のツボは、日曜日は9/1の何日前かを知ることです。  (WEEKDAY(DATE(C2,F2,1))-1)は言い換えると、  (9/1の曜日)-(日曜日)  ということです。  WEEKDAY関数は日曜日に1を返します。

takapi30
質問者

補足

よく理解できました。とっても助かりました。それと、もうひとつ質問があるのですが、発表の際、プロジェクターを使うのですが、ポインターの↑とかをマーカーペンのように変えて説明することはできますか?よく先生が使っているのですが・・。厚かましくて申し訳ございません。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

#1です。補足を読みました。 おわかりいただき何よりです。  さて、もう一つのご質問の件ですが、残念ながら 私にはわかりかねます。この質問と内容もだいぶ 違いますので、新たに質問なさった方がよろしいかと 思います。その方が、明確な回答がもらえる可能性が 高いと思いますよ。  その際は、使用するソフト(パワーポイントなのか、 ブラウザなのか、特定のソフトではなく全般なのか) などを明記されるとよいでしょう。 さしでがましいようですが、アドバイスまで。

takapi30
質問者

お礼

本当にありがとうございました。発表も無事に終わりました。助かりました。適切なご指導ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 >=DATE(C2,F2,1)-(WEEKDAY(DATE(C2,F2,1))-1) >特に最後の『ー1』は何ですか? それは、月の1日(ついたち)のことですね。 カレンダーを作る時に、左上端の日曜日の欄に入る日付は、 その月の1日の曜日の数を引けば、月曜日なら、2 火曜日なら、3が入ってしまうので、1日(ついたち)の分の数を除いてやるわけです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル関数について

    エクセル関数の使用方法について教えてください。 また、ストップしてしまいました。 日付から曜日を求められるように、CHOOSE関数とWEEKDAY関数を使用して以下のとおり入力しました。 (実際のセルの表示は違うのですが、分かりやすいようにA1とB1にしました) CHOOSE(WEEKDAY(A1),"(日)","(月)","(火)","(水)","(木)","(金)","(土)") 曜日を表示したいセルはB1です。 私としては、A1に日付が入力されていない場合は、関数が入っていても、B1は空白であってほしいのです。 いろいろ調べていたら、IFERROR関数が有効?のようなのですが、ソフトが古いらしく対応しておりません。 このような場合はどのようにしたら解決できるでしょうか。 因みに、IF関数の使用を試みたのですが、うまくいきません。 詳しい方、どうか教えてください。 よろしくお願いします。

  • excelの関数について

    EXCELでカレンダーを作ったのですが 関数の =IF(C5>=WEEKDAY(DATE($B$2,$B$3,1),1),C5-WEEKDAY(DATE($B$2,$B$3,1),1)+1,"") の意味が分かりません。 どなたか意味を教えてください。

  • エクセル関数の戻り値によりコピーができますか

       A   B  C 1  年  月  日 2  2011  9   17 3 4  日付 2011/9/17 5  曜日   土 B4は”=DATE(A2,B2,C2)”の関数を使います。 B5は”=TEXT(WEEKDAY(B4,1),"aaa")”の関数を使います。 一方曜日による7種類のシートがあります。シート名は"日""月""火""水""木""金" "土"です。B5の結果を判断して、曜日毎にA7に各シートの内容をコピーしたいの ですが、マクロを使わない関数だけでの方法はありますか? 各曜日のシートの内容は1セルだけでなく広い範囲なので全てA7を起点にコピー したいのです。宜しくお願いします。

  • エクセル カレンダー

    エクセルのカレンダーついて教えて下さい。 B1 西暦 C1月日 B9 日 月 火 水 木 金 土 B10 ~ H12 B16~ H12 B18~ H12 B20~ H12 上記4段に日にちの数字のみ(1 2 3 4) 入力になります。 表は一ヶ月単位 表のレイアウトは横 B1 西暦 C1月日 に入力をしたら、日にちが自動で反映されるように、 したいのですが、詳しい方計算式を教えて頂けますでしょうか?  宜しくお願い致します。  

  • エクセル2003 週5のカレンダー

    週5のカレンダーを関数かマクロで作れないでしょうか? 質問で、同じ質問を探してみたんですが、見当たりません。 イメージとしては、 A1に西暦で「年」 B1に「月」 を入力すると、自動に日付を表示させたいのです。 因みに、A2、B2、C2、D2、E2、F2、G2は「曜日」を 固定で入力しておきます。 ほとんどのカレンダーは、 週6で作られていますが、 私が作りたいのは、週5です。 以下のイメージは、 実際のカレンダーとは違いますが、 例えると、30日と31日が6週目になる月は、 1週目の頭に持っていきたいんです。 ※表示上「_(アンダバーを入れてあります)」 _____(A)__(B)__(C)__(D)__(E)__(F)__(G) (1)_2010__3 (2)__日___月_____火____水____木____金___土 (3)__30___31_________________________________1 (4)___2____3_______4_____5______6_____7_____8 (5)___9___10______11___12_____13___14___15 (6)__16__17______18___19_____20___21___22 (7)__23__24______25___26_____27___28___29 他の質問を見て、試してみたんですが、 上手く行きませんでした。 さらに、土・日・祭日のセルの色を 自動に背景色が自動に黄色にできるといいのですが・・・。 アドバイスがありましたら、 よろしくお願い致します。

  • 関数 区切られた塊の個数を塊別にカウントする

    いつも回答して頂きありがとうございます。 ・B列に日付が連続で入力されています。 ・D列の特定の場所に確認が表示されるよう関数を入力しています。 金曜日 と 土曜日 F列で指定した日付 =IF(OR(WEEKDAY(B3)=6,WEEKDAY(B3)=7),"確認",IF(COUNTIF($F$3:$F$30,B3),"確認","")) ・C列に確認が連続で表示されている箇所の一番上の行を表示するよう関数を入力しています。 =IF(D2<>"","",D3) ・F列にD列で確認表示させたい日付が入力されています。 上記の時、B列のそれぞれの一塊に確認が何個あるか、それぞれの一塊の最上段に表示させたいのですが、そんな都合の良い関数の組み合わせってあるのでしょうか?色々考えましたが想像出来ません。 御指導の程宜しくお願い致します。

  • エクセル 関数について

    エクセルで A1にTODAYで今日の日付が入ってます(2009/5/21) B1~B10に任意の西暦を入力します 2009/05/19など C1~C10に今日2009/5/21より過去だったら”1”を 未来だったら”2”を返すような関数はありますか?

  • エクセル関数 マクロ

    EXCELで作ってある表に数字を入力する時、 (例)セルA1⇒B1⇒C1(⇒D1⇒F1)と入力した後エンターキーを押したら、 セルA2⇒B2⇒C2(⇒D2⇒F2)へ、またエンターキーを押したら、 セルA3⇒B3⇒C3(⇒D1⇒F3)と移動する方法(関数?マクロ?!)を教えて下さい。

  • エクセル関数

    =IF(COUNTIF($C$40:$C$55,$B3),"休館日",VLOOKUP(WEEKDAY(B3),{1,"";2,"";3,"";4,"休館日";5,"";6,"";7,""},2,0)) 上記の関数を入力するとエクセル2003では、#N/A とメッセージが出てしまうのですが、 また、質問しました 年間の指定した日と毎週水曜日の両方を休館日にするには、上記の関数を 入力したのでは、表示されません。 ご回答お待ちしております。

  • WEEKDAY・TEXT関数について

    A4セルに日付を入力すると、B4セルへ曜日が自動で出てくるように関数式を入れてみたのですが、空白時は『―』のようにする事は可能でしょうか? 下↓のようにB4セルへ入力すると、何も入力していないところは何故か(土)と勝手に出てきてしまいます。 =TEXT(WEEKDAY(A4),"(aaa)") それが出来なければ、セルの書式設定で曜日を入力すると、()付で表示されるようにユーザー定義を設定したいので、教えて下さい。 宜しくお願いします。

専門家に質問してみよう