• ベストアンサー

【EXCEL】先週の月曜日の日付を入れたいのです。

セルの中に先週の月曜日の日付を入れたいのです。 形式は○月○日で表示したいのですができますでしょうか。 手動で入力するのではなく、ファイルを開いたらそのセルにすでに入力されているといった風にしたいのです。 ファイルを開く日が決まっていたらDATE関数でいけるのですが、ファイルを開く日は決まっていません。 マクロを使えば可能だと思うのですが、アフォなのでよくわかりません。(ノ_<。) プロフェッショナルな方!よろしくお願いいたします。

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

  • ベストアンサー
  • surounin
  • ベストアンサー率28% (30/106)
回答No.4

説明不足でした 先ほどの例は、月曜日起算の場合です^^; 日曜起算なら以下のとおりです 違いは、日曜日のときに日付が一週間ずれます =TODAY()-CHOOSE(WEEKDAY(TODAY(),1),6,7,8,9,10,11,12)

rappaozisan
質問者

お礼

素晴らしい! 答え一つ出すのにもいろいろなやり方があるのですね! CHOOSEですか。。。実は初めて聞く関数です。 自分のバカさが身にしみてわかりました。 今日は一日かけてエクセルを勉強してみます。 No1さんのようにパパッとマクロを書ければいいのですが私はまだスキル不足みたいです。

その他の回答 (3)

  • surounin
  • ベストアンサー率28% (30/106)
回答No.3

=TODAY()-CHOOSE(WEEKDAY(TODAY(),2),7,8,9,10,11,12,13) でどうでしょ^^

  • at121
  • ベストアンサー率41% (85/206)
回答No.2

今週の月曜 4/4月 は4/4月 =TODAY()-WEEKDAY(TODAY(),2)+1 先週の月曜 4/4月 は 3/28月 =TODAY()-WEEKDAY(TODAY(),3)-7

rappaozisan
質問者

お礼

GJ!天才! できました! なるほど。。。 これならよく見たら理解できそうな感じです。 もうちょっとエクセルとにらめっこしてみます!

  • stouma
  • ベストアンサー率35% (142/399)
回答No.1

マクロでの回答をしたいと思います。 1.該当ファイル(Excel)を開きます。 2.上部バーから[ツール]-[マクロ]-[Visual Basic Editer]を選択します。 3.エディターが起動したら、上部バーから[挿入]-[標準モジュール]を選択します。 4.プロジェクトという場所に標準モジュールの[Module1]が作成されましたらそちらをダブルクリックします。 5.下記をコピーして貼り付けてください。  Function DateConv(datDate As Date) As Date    Dim datWk1 As Date    Dim intWk1 As Integer    If IsDate(datDate) = True Then       datWk1 = DateAdd("ww", -1, datDate)       intWk1 = 2 - Weekday(datWk1)       DateConv = DateAdd("d", intWk1, datWk1)    End If  End Function 6.該当セルに=DateConv(now)と入力すれば  先週の月曜日の日付が出力されるはずです。  ただし○月○日はセルの書式設定で変更してください。  (今後の汎用性を高めるため) 作成にあたり日曜日を週の最初として捉えました。 また、週の1週前の月曜日(金曜日であっても先週の月曜日) となっております。 また、=DateConv("2005/04/01")と入力しても動作します。

rappaozisan
質問者

お礼

丁寧にご回答いただき大変ありがとうございました。 試してみましたが#VALUE!のエラーが出ました。 自分なりに考えてみたのですが、なにぶん勉強不足でわかりませんでした。 他の方の回答でできたので結果的には良かったのですが、大変参考になりました。 どうもありがとうございました。