- ベストアンサー
【EXCEL】先週の月曜日の日付を入れたいのです。
セルの中に先週の月曜日の日付を入れたいのです。 形式は○月○日で表示したいのですができますでしょうか。 手動で入力するのではなく、ファイルを開いたらそのセルにすでに入力されているといった風にしたいのです。 ファイルを開く日が決まっていたらDATE関数でいけるのですが、ファイルを開く日は決まっていません。 マクロを使えば可能だと思うのですが、アフォなのでよくわかりません。(ノ_<。) プロフェッショナルな方!よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
説明不足でした 先ほどの例は、月曜日起算の場合です^^; 日曜起算なら以下のとおりです 違いは、日曜日のときに日付が一週間ずれます =TODAY()-CHOOSE(WEEKDAY(TODAY(),1),6,7,8,9,10,11,12)
その他の回答 (3)
- surounin
- ベストアンサー率28% (30/106)
=TODAY()-CHOOSE(WEEKDAY(TODAY(),2),7,8,9,10,11,12,13) でどうでしょ^^
- at121
- ベストアンサー率41% (85/206)
今週の月曜 4/4月 は4/4月 =TODAY()-WEEKDAY(TODAY(),2)+1 先週の月曜 4/4月 は 3/28月 =TODAY()-WEEKDAY(TODAY(),3)-7
お礼
GJ!天才! できました! なるほど。。。 これならよく見たら理解できそうな感じです。 もうちょっとエクセルとにらめっこしてみます!
- stouma
- ベストアンサー率35% (142/399)
マクロでの回答をしたいと思います。 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")と入力しても動作します。
お礼
丁寧にご回答いただき大変ありがとうございました。 試してみましたが#VALUE!のエラーが出ました。 自分なりに考えてみたのですが、なにぶん勉強不足でわかりませんでした。 他の方の回答でできたので結果的には良かったのですが、大変参考になりました。 どうもありがとうございました。
お礼
素晴らしい! 答え一つ出すのにもいろいろなやり方があるのですね! CHOOSEですか。。。実は初めて聞く関数です。 自分のバカさが身にしみてわかりました。 今日は一日かけてエクセルを勉強してみます。 No1さんのようにパパッとマクロを書ければいいのですが私はまだスキル不足みたいです。