• ベストアンサー

エクセルで日にちを自動的につける方法

スケジュール管理のため日にちの付いたものを作成しています A1に【2007】と記述 A2に【6】と記述 C1に【=DATE($A$1,$A$2,1)】と記述 C2に【=CHOOSE(WEEKDAY(C1),"月","火","水","木","金")】と記述し、以降繰り返す。 D1に【=C1+1】と記述し、以降繰り返す。 という指示をしました。 思ったような結果が得られないので教えてください。 行いたいことは 土日を抜かした日にちを導き出したいのです。 もし土日を抜かすことができないのであれば、土日のみ色をつけ認識できる方法を教えてください。 以上よろしくお願いします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

土日、祝日を除いたカレンダを作成したいのですか? それであればWORKDAY関数を利用するのが良いと思います。ただしWORKDAY関数を利用するには「ツール」→「アドイン」→「分析ツール」にチェックをつけておく必要があります D1セルに  =WORKDAY(C1,COLUMN()-2,Sheet2!A1:A20) と入力し右方向にコピーします。 この式でSheet2!A1:A10には祝日のリストがあるものとします。(2007/7/16 のような日付形式で指定します) 曜日はもっと簡単に出せます。C2セルに  =C1 そしてC列の書式を aaa にしてみてください。

aisu_san3
質問者

お礼

よくよく見て試したところ この方法で正しく出力されました。 ありがとうございます。

aisu_san3
質問者

補足

回答ありがとうございます。 早速試してみましたところ土日は問題なく解決しました。 祝日リストというのはシート2のA1からA20までに記述すればよいのですか? 2007/07/16などを追加したのですが16日は表示され、 うまく出力されません。

その他の回答 (4)

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.5

>私がやりたいことはA1の年とA2の月を見て >自動的に出力される表を作りたいのです。 であれば、C1の記述を  =DATE(A$1,A$2,ROW()) で日にちを連続して作成できます。  ※31日まである月や2月などは考慮しません(汗 あとは ANo.4で回答した通りに列を読み変えてください。

aisu_san3
質問者

補足

回答ありがとうございます。  =DATE(A$1,A$2,ROW())と記述すると日にちが4日から 始まってしまいます。 ANo.4の回答の通り、ただいま作成中です。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.4

そのアルゴリズム(組み立て方)では土日も含んでしまいますね。 D列で日にちをカウントさせるように考えていらっしゃると読んでみます。 (その割りには、C1に =DATE($A$1,$A$2,【1】)と日にちが増えない記述になっていますが・・・) 縦に日にちを並べるのであれば、そのまま一ヵ月分並べてしまいましょう。 そのほうがシンプルになりますし、あとで加工や編集を行ないやすくなります。 ■曜日の表示は「セルの表示形式」で行うと良いです。 日にちがA列、曜日がB列とした場合、B1には =A1 などと入力して、「セルの表示形式」からユーザー書式に aaa を設定してみてください。 曜日が表示されるようになります。  ※ aaa で "金"、aaaa とすると "金曜日" などと表示されます。 操作:  B列を選択する  ↓  書式 → セル → 表示形式(タブ) → 分類(項目)から「ユーザー書式」を選択 → 種類(項目)直下の入力欄に aaa を入力 → OK ■曜日に応じて色を変えるのであれば、「条件付き書式」です。 上記の場合、セルの中身は日付けのシリアル値(数値)ですので文字として判定させられません。 そのためWEEKDAY関数を使用します。 操作:  A列を選択する  ↓  書式 → 条件付き書式 → 条件1(項目)で「セルの値が」を「数式が」に変更 → 右の入力欄に =WEEKDAY(A1,2)>5 を入力 → 書式ボタンを押して土日の表示色を選択する → OK → OK 同様にB列も設定してください。 土日の色が設定された書式に変わる事を確認してください。 ■祭日も色を変更したいのであれば、条件付き書式に条件を追加します。 操作:  Sheet2のA列などに祭日のリストを作成してください。 (6月は祭日が無いため6月15日を仮に入力してください)  条件付き書式では他のシートを参照することはできませんので範囲名を設定します。  Sheet2のA列を選択して左上の名前ボックスに 祭日 と入力して範囲名を付けてください。  条件付き書式を設定する欄を追加します  Sheet1のA列を選択します。  ↓  書式 → 条件付き書式 → 下にある「追加」ボタンをクリック → 条件2の入力欄に =VLOOKUP(A1,祭日,1,FALSE) を入力 → 書式ボタンを押して土日の表示色を選択する → OK → OK 同様にSheet1のB列も設定してください。 6月15日、金 の色が設定された書式に変わる事を確認してください。 ちょっと面倒な操作が続きましたが、見た目がシンプルなのは後で編集や加工を行なうときに非常に操作しやすいのでお薦めです。 ※WEEKDAY関数、VLOOKUP関数の詳細はExcelのヘルプを参照してください。

  • FEX2053
  • ベストアンサー率37% (7987/21354)
回答No.3

考えてみれば、土日は必ず6日後にやってきますよね。 ですので、5日パターン(月~金)で日付を作っておき、5日をブロック にしてコピーすれば出来てしまうハナシなわけです。 ゴチャゴチャした式を考えるより、まず 6/4 6/5 6/6 6/7 6/8 =A1+7(A1が6/4なら6/11になりますよね) =A2+7(A2が6/5なら6/12になりますよね) =A3+7 =A4+7 =A5+7(A5が6/8なら6/15になりますよね) =A6+7(A6はA1+7ですから6/11、その7日後なので6/18です) =A7+7(A7はA2+7ですから6/12、その7日後なので6/19です) : こうすれば、5日ブロックで日付が勝手に出来ますよ。 キモは始めに5日分の日付を入れておき、6日目から+7日するという点です。

aisu_san3
質問者

補足

回答ありがとうございます。 私の質問の仕方が不十分だったと思います。 私がやりたいことはA1の年とA2の月を見て 自動的に出力される表を作りたいのです。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

#01です。D1セルの式を訂正します  =WORKDAY($C$1,COLUMN()-2,Sheet2!A1:A20) もしくは  =WORKDAY(C$1,1,Sheet2!A1:A20) にしてください

関連するQ&A

  • エクセルのchoose関数について教えてください。

    A2 = #2001/09/01# =CHOOSE(WEEKDAY(A2),"日","月","火","水","木") エラーがでますが、なぜか教えてください。

  • エクセル2003の表示を教えてください。

    エクセル2003の表示を教えてください。 A1セルに2010年7月1日B1セルに数式で=CHOOSE(WEEKDAY(A25,1),"日","月","火","水","木","金","土")により曜日を表示してます。C1に土日だったら〇、そうでなければスペースとなる式を教えていただけますでしょうか。 sum関数しかわからないレベルの知識しか持っておりません。 どうぞよろしくお願いいたします。

  • エクセルでカレンダーにより色をつけたい

    エクセルを用いて毎日のチェック表のようなものを作りました。 日にちに合わせて曜日を表示させるようにしました。「=MID("月火水木金土日",WEEKDAY(E6,2),1)」 これにより自動で曜日が表示されますが、このときに合わせて土曜と日曜のところのセルを自動で色をつけたいのです。     1 2 3 4 5 6 7 8 9     木 金 土 日 月 火 水 木 金 項目1 項目2 項目3 上のような形になっており、この場合ですと3、4の土日部分を自動で色をつけたいのです。 よろしくお願いします。

  • エクセル関数について

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

  • Excelで曜日を表示させると、「土」となるエラー

    Excelで、A1に日付を記入して、B1に曜日が表示されるようにB1に関数を =TEXT(A1,"aaa") または =CHOOSE(WEEKDAY(A1),"日","月","火","水","木","金","土") と入力したのですが、A1が空白だと「土」と表示されてしまいます。出来れば何も表示されないようにしたいのですが、 何か、解決する方法はあるのでしょうか? ご回答お待ちしております。よろしくお願いいたします。

  • Exel2003で#VALUE!表示を消す方法

    Excelの関数に関しては素人同然なのですが、見よう見まねで 作っていると表示面で困る事がありまして、皆様のお知恵を拝借 したいと思います。 =IF(A7="","",CHOOSE(WEEKDAY(DATE($A$1,$A$2,A7)),"(日)","(月)","(火)","(水)","(木)","(金)","(土)")) セルA1に西暦、A2に月を入力し、上記の関数で得られた結果でA7に曜日を表示する、というやり方を したいのですが、月によっては29日以降が表示されない為、 #VALUE!が曜日覧に表示されてしまいます。 #VALUE!で返された場合、結果は無視しても構わないので #VALUE!を表示させない方法はあるのでしょうか?もしくは 関数に追加すれば良い項目があれば、是非ご教授願います。 皆様どうぞ宜しくお願いいたします。

  • 続・勤務表

    質問を締め切ってしまったのでもう一度・・・ 月を変えると曜日が変わる様にしているのですが、 同じく月を変えると、シフトが変わる様にしたいのですが 解かりません。 ご解答いただければ大変有り難いです。 シフトそれぞれ、BBAAとなっています。 現在の各セルの数式の表示は C7セルの所では、=DATE(A5,A8,1) C8セルの所では =IF(MONTH(C7)>$A$8,"",C7) C9セルの所では =IF(C8="","",CHOOSE(WEEKDAY(C8,1),"日","月","火","水","木","金","土")) と、それぞれ数式が表示されてます。 お時間がある時にでもご解答頂けると幸いです。 宜しくお願い致します。 。

  • Excelの計算式を教えて下さい。

    下記のような土日を除いた日付の表でセルA11、A12に期首、期末の日付を指定すると、その期間の合計等をセルC11に出るようにしたいのです。 9行以降は行の挿入で新たなデータが追加されます。 どのような式でできるのでしょうか?お教え下さい。 A B C 1 10/01 金 1 2 10/04 月 2 3 10/05 火 5 4 10/06 水 3 5 10/07 木 2 6 10/08 金 1 7 10/11 月 4 8 10/12 火 2 9 10 ------------------------------------ 11 10/05 (期首) 15 (合計=セルC11) 12 10/11 (期末)

  • エクセルで自動的に土日、祝日以外の日にちを表示させる方法

    いつもお世話になっております。以前ここで質問させていただきました。 一番頭の実行【C1】がうまくいかないので質問させていただきます。 わかる方いましたら教えてください。 実行したいことは以下のとおりです。 1.土日以外の【月~金】までを【C1~Y1】までに表示させる。 2.祝日は同一ファイルの【Sheet2】の日付を見て休日を表示させない。 3.【A1】には年/月を入力して【C1】に、たとえば【2007年7月】の頭から   土日、祝日以外の曜日から開始させたい。 現在私が実行している内容は、以下のとおりです。 1.【A1】に【2007】と入力。【A2】に【7】と表示させている。 2.【C1】に【=DATE($A$1,$A$2,1)】と入力。  【D1】に【=WORKDAY(C$1,1,Sheet2!A1:A1000)】以降【~Y1】まで繰り返している。 3.【C2】に【=C1】としセルの書式設定→ユーザ定義→aaaで曜日を表示させている。 この内容でうまくいかないのが【2007年7月】の場合なのですが 【C1】の頭が日曜日から開始になってしまいます。 これを月曜日の2日から開始になるようにしたいです。 【C1】の【=DATE($A$1,$A$2,1)】にSheet2!A1:A1000を追加すると変になるので そこらへんが良くわかりません。 当方あまりエクセルがわかりません。 以上よろしくお願いします。

  • エクセル勤務表作成中なのですが・・・

    初めて質問します。よろしくお願いします。 エクセル2003にて勤務表を作成しているのですが、こんな事ができるものなのでしょうか?     A    B   C   1 H18年  8月  2  21   月   出勤  3  22   火   出勤  4  23   水   休み   ・   ・   ・ 32  20   日   休み シート1にこの様な表を作り、シート2の1つののセルに休みの日付を自動的に抽出したいのですがこの様なことは可能でしょうか? ちなみにA1,B1には数字のみの入力で表示形式で年月を表しています。A2には=DATE(A$1+1988,B1,21)という関数で日にちを表示、A3以降は=A2+1というようにして表示しています。曜日は=IF(A2="","",WEEKDAY(A2))という関数で表示しています。 私エクセル関数に関してはあまり詳しくありません。この表もフリーソフトで入手したものを使用しています。 よろしくお願い致します。

専門家に質問してみよう