• ベストアンサー

エクセルの数式について質問です

エクセルで毎月のスケジュール表を作成しているのですが、どうしてもできないので簡単にできる方法知っていますか??? 毎月第二水曜日の欄にに、出勤簿入力と自動で入力したいのですが、どんな数式を入れておけば、自動で毎月入るようになりますか?? 教えてください。

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

  • ベストアンサー
  • zongai
  • ベストアンサー率31% (470/1474)
回答No.2

第二水曜日と判断するための条件に何があるのかわかりません。 年月日を含んだ日付セルがあるのか?(表示形式で「日」だけにしているののか、単に1~31の数字を入れてるだけか) 曜日は「日」「月」「火」という文字で表示されているのか?(曜日そのものは表にないのか) 説明不足ですよ。 さて、仮に… A列が日付、B列が曜日で、 A1が1日から始まっている、 という漠然な表を想定して… まず、第2水曜日に該当する可能性があるのは、8日~14日ということはわかりますよね。 ですので、「出勤簿入力」と表示したい8日~14日のセル(たとえばC列だとして)に、 [C8] =IF(B8="水","出勤簿入力","") (以後[C14]までコピー) でいいと思います。

maruono
質問者

補足

ありがとうございます。 現状、A列が日付、B列が曜日、A1が1日から始まっている。 というその通りのエクセルになっています。 早速やってみます!

その他の回答 (3)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんにちは! No.3です。たびたびごめんなさい。 第二水曜日ではなくて、第二週にある水曜日が希望だということですね? それではもう一度数式を回答したいと思います。 表は前回の画像の並びそのままを使わせていただきます。 ついでと言っては失礼ですが、大の月・小の月 の対処も一緒に回答したいと思います。 まず、A2セルに =IF(DATE($E$1,$G$1,ROW(A1))<=EOMONTH(DATE($E$1,$G$1,1),0),ROW(A1),"") B2セルに =IF(A2="","",DATE($E$1,$G$1,A2)) (前回同様、セルの書式設定から表示形式はユーザー定義で aaa としておいてください。) C2セルに =IF(B2="","",IF(AND(WEEKDAY(DATE($E$1,$G$1,A2))=4,WEEKNUM(DATE($E$1,$G$1,$A$2))+1=WEEKNUM(DATE($E$1,$G$1,A2))),"出勤簿入力","")) と数式を入れて、 A2~C2までを範囲指定した後に、 C2セルのオートフィルマークで下へ ずぃっ!ずぃ~~~!とコピーしてみてください。 これでE1・G1セルに入力した年月の月末までしか表示されないと思います。 尚、数式にEOMONTH関数やWEEKNUM関数を使っていますので メニュー → ツール → アドイン → 「分析ツール」にチェックを入れておいてください。 そうしないとエラーになると思います。 そして、補足に >数式を入れているセルの他の言葉を入力すると、数式は消えてしまいますが、例えば上の表であればC6とかに言葉を入力することはできますか? ちなみに数式はそのまま残しておきたい場合。 やはり行を作って、違うセルにしないと不可能ですよね??? とありますが、 確かに空白セルに自由に入力しても構いませんが、 ご指摘どおり、元の数式は消えてしまいますので 同じ表を何ヶ月も使用したいのであれば 入力するセルは別セルの方が良いと思います。 (一つの案として、入力していないセルは元の数式がそのまま残っているはずですので 空白セルからオートフィルで下へコピーする方法もあります。) 以上、当方使用のExcel2003での回答でしたが 参考になれば幸いです。 何度も失礼しました。m(__)m

maruono
質問者

お礼

できました! これでやってみます! 本当にありがとうございましたぁ 感謝します。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 元の表がどのようになっているか分からないので 勝手に↓のように表を作ってみました。 シリアル値が必要になりますので 他のセル(今回は E1に年 G1に月の数値を入力するようにしています。) まずB2セルの書式設定の表示形式を ユーザー定義から aaa としています。 (ユーザー定義を aaaa とすれば○曜日まで表示されます) そして、B2セルに =DATE($E$1,$G$1,A2) としてオートフィルで下へコピーします。 次にC2セルに =IF(DATE($E$1,$G$1,A2)=DATE($E$1,$G$1,2*7)-WEEKDAY(DATE($E$1,$G$1,-2),3),"出勤簿入力","") という数式をいれてオートフィルで下へコピーします。 これで第二水曜日にだけ「出勤簿入力」と表示されるはずです。 尚、大の月・小の月の処理は行っていませんので 日付と曜日は月に関係なく31日以降も表示されると思います。 (この対処法方もありますが、長くなりますので今回は書きません) 以上、参考になれば幸いですが、 的外れなら軽く読み流してくださいね。m(__)m

maruono
質問者

補足

ご丁寧にありがとうございます!! できましたよぉぉぉ ただ、私の言葉が足りなかったです。 第二週の水曜日にしたい場合8月だと5日の水曜日は第二水曜日となるらしいのですが、その場合はほかに方法がありますか?? また、数式を入れているセルの他の言葉を入力すると、数式は消えてしまいますが、例えば上の表であればC6とかに言葉を入力することはできますか? ちなみに数式はそのまま残しておきたい場合。 やはり行を作って、違うセルにしないと不可能ですよね???

回答No.1

ん?数式もなにも、ただ 毎月第二水曜日の欄に 出勤簿入力と書いとけばいいだけじゃないですか? 毎月第二水曜日の欄が一定の場所(セル)じゃないの? しかもそんなの省略したからって大した、手間は省けないでしょう?

maruono
質問者

お礼

そうですね~ 膨大なものなので、数式で入れたかったのです・・・。

関連するQ&A

専門家に質問してみよう