• ベストアンサー

【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!のエラーが出ました。 自分なりに考えてみたのですが、なにぶん勉強不足でわかりませんでした。 他の方の回答でできたので結果的には良かったのですが、大変参考になりました。 どうもありがとうございました。

関連するQ&A

  • ☆Excelエクセルで入力した日の日付を表示したいです☆

    こんばんは!エクセルで、なにかデータを入力した横のセルに、その日の日付が自動的に入るような方法があれば、是非教えてくださいm(__)m横の列に手動で日付を入力すればよいといえばよいのですが^^;その列には、また別の日に、追加でデータを入力していきたいですので、前の日の日付もその日の日付も残るようにしたいんです。today関数とかじゃ全部その日になってしまいますよね。。。もし、データを入力しただけで、そのようなことができる方法があれば、是非教えてください。よろしくお願いしますm(__)m

  • 月曜日の日付のみ表示

    いろいろと検索をかけて調べたのですが、 第○月曜日とかの表示の仕方は分かったのですが、 応用をきかせることが出来ずわかりません。 Excel2000で2004年の月曜日と金曜日のみ日付の表示方法を教えてください。 関数で出来ましたら、教えてください。 宜しくお願いします。

  • Excel関数で任意の日付を表示させるには?

    Excel関数を用いて、任意の日付を表示させる方法を 教えていただけますか? 例えば、今日からちょうど1年半後の日付を 知りたい場合、セルA1に今日の日付 20040829 と入力すると、セルB1に 20060229 と表示させるような関数は、何をどのように 使えば良いのでしょうか? date という関数を試してみたのですが、 「日」は加算できるのですが、 「年」や「月」に+1、+6と入力しても、 「日」の方に加算されてしまい、 うまくいかないんです。 良い方法を御存知の方がいらっしゃいましたら、 ご回答、よろしくお願いします。

  • Excel2007 日付関数について教えて下さい。

    A1に例えば「2012/5/22」と入力すると B2に翌々月10日の日付を入力するため 関数「=DATE(YEAR(A1),MONTH(A1)+2,10)」 と関数を入れました。 A1に日付が入れば翌々月10日の日付を返してくれるのですが A1が空白だと「1900/3/10」の値を返してきます。 日付が入っているとややこしいので消すもしくは日付じゃない値を返すことは出来ないでしょうか よろしくお願いします。

  • 木曜日の日付のみを抜き出して表示させたい

    毎週木曜日に行われる掃除当番の年間表のようなものを作成しようとしています。 毎週木曜日の日付のみ表に表示させたいのですが、Excelマクロで方法はありますか? (上記以外にもやりたい操作があり、マクロ1回で簡単にしたいので、セル入力の関数ではなくマクロで考えています。)

  • VBAで日付と時刻の計算に困っています

    すでに入力されている日本の日付と時刻を、欧州の日付と時刻に変換する というようなマクロを組みたいです。 もう少し具体的にいうと、 日本の日付と時刻が 2011/06/12 07:15:20 というような形式で入力されているセルA1があり、 そのセルA1を選択している状態でマクロを実行すると、 セルに入力されている日付と時刻を欧州の日付と時刻に変更する というマクロです。 セルA1の日付を例にすると、マクロを実行したら時差である9時間を減算して、 2011/06/11 22:15:20 という値が返ってくるようにしたいです。 DateAdd関数を使用して時刻を-9時間することはできたのですが、 時刻のみが-9時間されるだけで日付は変更できませんでした。 もしよろしければ、時間を減算しただけで日付も減算してくれるような マクロの組み方を教えていただけないでしょうか。

  • Excel日付に関する疑問

    「06/08/2015 05:17 am」このように書かれた日付+時間情報があります。日本では年/月/日が基本の為、このように月/日/年の順番に入力してもシリアルには変換できません。 年/月/日と入力すると、月/日/年の表に表示されるだけのようです。 「06/08/2015 05:17 am」のように入力されている値をシリアルに直すのに、セルの書式設定でする方法はありませんか。Date関数を使ったり、「区切り位置」で変換できるのは分かっております。

  • Excel2007 毎月の第1月曜日を表示したい。

    Excel2007です。 毎月の第1月曜日を表示するため、調べたところ =DATE(YEAR(B2),MONTH(B2),1)+7-WEEKDAY(DATE(YEAR(B2),MONTH(B2),1),2)+1の式を見つけました。 ほとんどの月は、うまく表示されるのですが第1月曜日が1日の時がうまく表示されません。 すなわち、 B2に2009 B2に6 として とし2009年6月の第1月曜日を表示させようとすると、2009/6/8と表示され2009/6/1と表示されません。 IF関数等でで第1月曜日が8日のときは、1日とする数式をご教授ください。

  • 【Excel2000】土・日曜日を考慮した日付+α

    現在セルB1には『A1に入力した日の月末日付+月末休日の場合は前日』が出るようにしてあります。 セルA1 = 日付 セルB1 = IF(WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,0))=1,(DATE(YEAR(A1),MONTH(A1)+1,0))-2,IF(WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,0))=7,(DATE(YEAR(A1),MONTH(A1)+1,0))-1,DATE(YEAR(A1),MONTH(A1)+1,0))) ここに『A1が25日以降の場合は翌月20日+翌月20日が休日の場合は後日』という設定を加えたいのですが、可能でしょうか?  ・A1 = 2011/07/10 → (結果) B1 = 2011/07/29(金)  ・A1 = 2011/07/25 → (結果) B1 = 2011/08/22(月) どうしても不可能であれば別セル(C1など)でも構いません。

  • yyyy/mm/ddの日付に一括変換するマクロ

    [セルの書式設定] の [表示形式]が標準(日付ではない)で単なる文字列となっている「mm-dd-yyyy」や「mm/dd/yyyy」のデータをマクロで「yyyy/mm/dd」の日付データに一括変換するマクロを教えてください。 たとえば、日付データが列Aにある場合にはDATE関数で、 =DATE(RIGHT(A2,4),LEFT(A2,2),MID(A2,4,2)) でも変換可能ですが、対象ファイルが多数、各ファイルにも対象の列が多数、そしてファイルの更新頻度も多いため、DATE関数を使用することは現実的ではない事情があります。 このためマクロを使用して処理させたいです。 添付のサンプルの例で一括変更するマクロを教えてください。 なお、Excelは2007を使用しています。

専門家に質問してみよう