• ベストアンサー

Excelである曜日のみを表示させたい

仕事でExcelを使用しています。  部下の各担当者に配布する発注書を毎月更新作成しているのですが、ほかにも多数の書類を月末時に作成しており「毎火・木曜日の日付」を手入力するのが結構手間です…。  できれば自動で表示させられたらなんて思ったのですが、例えば商品名などをA列に入力するとして、その右のB列から、毎火・木曜日のみを表示させる、何か良い手はありますでしょうか? また、翌月1日が火曜日の場合など、翌月にかかってしまうのも困るので、これは非表示にしたいのですが…。 もしできるなら本当に助かりますのでご存知の方、お教え下さい。よろしくお願いいたします。

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

  • ベストアンサー
  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.3

こんにちは~ ●質問に不明な点があります。 > その右のB列から、毎火・木曜日のみを表示させる ・「その右のB列から」 というのは、B・C・D・・と右方向に表示ですか? それとも、B列1列にたて方向に表示ですか? ・火、木を 1行(または1列)に表示ですか? それとも、火と木はそれぞれ別の行(または列)に表示ですか? ・1行(または1列)に表示だとして、必ず 火→木→火→木・・・の順ですか? 第1木曜日が、第1火曜日より早い日付であっても、火→木→火・・・の順ですか? 一応、例として・・ 【仮定】 ・B列から右方向に(C・D・E・・・)に、当月の火・木の日付を表示 ・火→木→火・・・の順 ・ただし、第1木曜が、第1火曜より早い日付の場合は、木→火→木・・・の順 当月の第1火曜と第1木曜の日付をどこかのセルに常時表示させておきます。 たとえば、第1火曜→B1、第1木曜→C1 だとして、 B1に =DATE(YEAR(TODAY()),MONTH(TODAY()),1*7-WEEKDAY(DATE(YEAR(TODAY()),MONTH(TODAY()),-1),3)) C1に =DATE(YEAR(TODAY()),MONTH(TODAY()),1*7-WEEKDAY(DATE(YEAR(TODAY()),MONTH(TODAY()),-3),3)) A3に商品名を入力すると、B3から右に日付を表示(火→木→火、または木→火→木) B3に =IF(A3="","",IF($B$1<$C$1,$B$1,$C$1)) C3に =IF(A3="","",IF($B$1>$C$1,$B$1,$C$1)) D3に =IF(COUNT(B3),IF(MONTH(B3+7)=MONTH($B$1),B3+7,""),"") と入れて、K3セルまで右にフィルコピー 日付の表示形式はお好みのものに。

jun-pei
質問者

補足

すみませんー…ありがとうございます。そうですよね、いろんなパターンがあるのですから、「右」になのか「下に」なのかわからなきゃしょうがないですよね…。不勉強でした。右列に日付を、縦に商品リストを載せたいのでshiotann99の【仮定】通りでした。 ※DATEとかYEARに()でいろいろ入れ子にできるなんて知りませんでした。関数辞典にも載っていなかったのに…。早速やってみます。どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

2005年8月1日をB1に入れる。 B2に=B1+5-WEEKDAY(B1)で2005/8/4が初木曜日 どこでもよいが C16、D16、E16、・・・に 0 1 7 8 14 15 21 22 28 29 と入れる。 C2に=IF($C$1+C16>=DATE(YEAR($B$1),MONTH($B$1)+1,1),"",$C$1+C16) と入れて、K2、L2まで式複写。 C2,d2,E2、・・・・は 2005/8/4 2005/8/5 2005/8/11 2005/8/12 2005/8/18 2005/8/19 2005/8/25 2005/8/26 となる。しかしこの質問の不完全さは、 >毎火・木曜日の日付」を手入力す・・のセル番地が書いてないので、 なんとも完全な答えが書けないのです。具体的にセル番地と曜日を あげてください。 VBAを望んでいないのだろうから、関数を使う答えを期待しているのであろうが、関数を使うということは (1)結果の値が1箇所(1セルで)正し値を返すことはもちろんだが (2)うまく複写して複数セルに複写できることが必要。 連続していないセル(上記も木曜と金曜のように異質なものが並び、土ー水はいらないなどイレギュラー)では技巧を凝らさざるを得ない。 凝らしてもできないかもしれない。必ず方法があるとは限らない。

jun-pei
質問者

お礼

なるほど、まだまだVBAは勉強を始めたばかりですが、すべてを関数で何とかしようとするばかりでもいけない場合があるのですね。おっしゃるとおり、テンぱるあまり、とても不親切な不完全な質問になってしまっていました。今後は気をつけたいと思います。参考になるアドバイスありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • WWolf
  • ベストアンサー率26% (51/192)
回答No.1

ベタかもしれませんが・・・ 下記のロジックをシート1のコードにCopy&Pasteし シート1のA1に年、B1に月を入れたら・・・ 参考に Private Sub Worksheet_Change(ByVal Target As Range) Dim TsukiFlag, MonthFlag Dim myYear, myMonth Dim myDate As Date Dim myWeekDay As Integer TsukiFlag = 0: MonthFlag = 0 myYear = Worksheets(1).Range("A1").Value myMonth = Worksheets(1).Range("B1").Value If Target.Row = 1 And Target.Column = 1 Or Target.Column = 2 Then If myYear <> "" Then If Target.Value <> "" Then TsukiFlag = 1 End If End If If myMonth <> "" Then If Target.Value <> "" Then MonthFlag = 1 End If End If If TsukiFlag = 1 And MonthFlag = 1 Then Worksheets(1).Columns(3).Clear Worksheets(1).Columns(4).Clear j = 1 myDay = myYear & "/" & myMonth & "/1" For i = 1 To Day(DateAdd("d", -1, DateAdd("m", 1, myDay))) myDate = DateSerial(myYear, myMonth, i) myWeekDay = WeekDay(myDate) If myWeekDay = 3 Or myWeekDay = 5 Then Worksheets(1).Cells(j, 3).Value = i Worksheets(1).Cells(j, 4).Value = WeekdayName(WeekDay(myDate)) j = j + 1 End If Next End If Else Exit Sub End If End Sub

jun-pei
質問者

お礼

お~、これでできてしまうんですね!!マクロはなかなか理解できずわからないままだったのですが、これを機に試してみて、今後は色々覚えてみたいと思いいました。なにせ必要に迫られているのできっと頑張れそうです。苦笑 どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 翌日の曜日を関数で表示するには

    たとえば、セルA1に月曜日と入れて(日付関数で入れずに文字列で入れるとします)B1には翌日の火曜日を表示させる様な関数はないでしょうか?ちなみにC1には水曜、D1には木曜とA1にある曜日を入れたらB1、C1、D1と翌日の曜日が入るようにしたいのです。 色々調べましたが、わかりませんのでよろしくお願いします。 A1  B1  C1 月  計算式  計算式   (表示火)(表示水) よろしくお願いします。   

  • Excelで指定の曜日の日付を表示する。

    Excelで、第1、2、3火曜日の日付を表示させたいのですが、便利な関数はありますか? 教えてください! また、第1、2、3火曜日と第3木曜日の日付を表示させるこおもできればなお良いのですが。。 よろしくお願い致します。

  • Excelで年間スケジュール作成 曜日判断する関数は?

    年間を通してうちの会社では、曜日を基準としたイベントがあります。年間スケジュールを立てたいのですが、皆さんのお知恵を拝借できないでしょうか?よろしくお願いします。条件は以下のとおりです。 1.(1)月曜日にアンケート作成、(2)その週の木曜日に配布、(3)3週間目の火曜日に回収。これが基本の形です。 2.(1)が祝日で、かつ翌日の火曜日が平日の場合、火曜日に実施します。 3.(2)が祝日で、かつ翌日の金曜日が平日の場合、金曜日に実施します。 4.(3)で火曜日が祝日であったり、火曜日が平日でも翌水曜日が祝日 であれば、(1)を一週間ずらして入力します。 5.(1)基準日(月曜日)を入力すると、(2)、(3)の結果をシート内 に作った年末年始、祝日、会社指定休日リストから判定結果 を表示。     例)A3セルに1/19(月)入力すると B3セル 1/22(木) C3セル 2/10(火)ですが2/11(水)は祝日なので、D3には"祝日あり"と表示させたいです。 どの関数が適切か教えてください。

  • エクセルで曜日を出したい

    エクセルですが A1セルに2006/10/31と入力して B1セルに自動で火または火曜日って 出るような式等を教えてください。

  • EXCELで空白行を作りたい

    締日(20日)で勤務表を作りたいので教えてください。各月によって月末が30日だったり31日だったりしますが、日付(締日でも作成日でも)を入力したら自動で行を詰めることなく翌月1日を同じ行から表示を開始したい。出来れば、その日が土・日ならばその行に色も付けたいのですが・・。 わかりにくくてすみません。 A列  A列 21  21 22  22 ・ ・ 30  30 31 1    1 2    2

  • エクセルで2013年分の曜日の表示がズレてしまう。

    エクセルについての質問です。 B1に年(2013) D1に月(1)   を入力し、 A10から縦に日付けが入るようにし、 その横のB10以降B列に曜日が入るような表を作っています。 表示は A10・・・1 B10・・・月 A11・・・2 B11・・・火 A12・・・3 B12・・・水 というような形です。 数式は A10に =DATE(B1,D1,1) B10に =A10 A11に =A10+1 B11に =A11 セルの書式設定はA列が ユーザー定義 d B列が ユーザー定義 aaa にしています。 この方法で2012年までは曜日の自動入力(?)にズレはなかったのですが、 2013年分からは曜日がズレてしまい、 本来2013年1月1日は火曜日なのですが、表示されるのは日曜日になってしまいます。 どのようにしたら直りますか? ちなみにエクセルが2010を使っています。 どうぞよろしくお願いします。

  • 曜日の自動表示

    エクセルで作った表(家計簿)を頂いたのですが、 2002/4/1と入力すると、31日まで自動的に表示されて 下の行のセルに曜日が自動的に出る関数 『=TEXT(WEEKDAY(D1,1),"dddd")』 が記述されていてMonday,Tuesday…と横に連続表示されます。 これを「月曜、火曜」又は「月、火」と漢字では 表示出来ないでしょうか?

  • A1の曜日が(日)の場合、B1にA1の翌日を表示

    A列に 9/4(日) 9/5(月) 9/6(火) と入力されています。書式設定(aaa)で曜日も表示させています。 A1の日付が「日曜日」の場合は、B1にA1の翌日「9/5(月)」と表示させ 月曜日だったら3日後の日付を表示させ、 さらに、火曜日だったら6日後の日付を表示 出来上がりは  A     B 9/4(日) 9/5(月) 9/5(月) 9/8(木) 9/6(火) 9/12(月)  となります。 数式でも、マクロでも可ですが、作り方がわかりません…。

  • エクセルで曜日に応じた文字を自動で入力したい

    エクセルでシフトを作成しています。 曜日によって出勤するかしないかがほぼ決まっているので、曜日に応じて休日か出勤かを自動で入力したいのですができますか? 現状、A1に月、C1に年を入力し、それをもとにA4から縦に日付を、B4から縦に曜日を表示させています。 たとえば、ある人は火曜と金曜がお休みなので、 B4が火曜日か金曜日の場合H4に●(休日の意味)を入力それ以外の曜日の場合は1100-2015を入力。 のような感じにしたいです。 また別の人はB4が月・木・金・日の時、N4に●。 B4が火・土の時、N4に1200-2100、 B4が水の時、N4に1800-2100を入力したいです。

  • エクセル 曜日に対応する担当者を表示するには?

    毎週月曜日と木曜日に行っている、あるイベントの予約表を作成しています。 予約表のイメージですが、A4用紙の片面に次の項目が入ります。 (1)年月日 (2)曜日 (3)担当者名(担当者は月曜日・木曜日別の人) (4)予約表 1枚/日で、8~9枚/月必要になるので、同じ書式のものを9枚分作り、 毎月末に、二月先の分を1か月分プリントしようと考えています。 (1)については、 1枚目の年月日用のセルに二月先の第一月曜日の年月日を入力。 2枚目の年月日用のセルに、「1枚目の年月日+3」と設定して→次の木曜日を自動表示。 3枚目の年月日用のセルに、「2枚目の年月日+4」と設定して→翌週の月曜日を自動表示。 4枚目の年月日用のセルに、「3枚目の年月日+3」と設定して→翌週の木曜日を自動表示。 5枚目の年月日用のセルに、「4枚目の年月日+4」と設定して→翌々週の月曜日を自動表示・・・。 という方法で、一枚目の第一月曜日を入力すれば、2~9枚目までは自動的に表示されるというやり方にしました。 (2)については、曜日用のセルにWEEKDAY関数を使いました。 9枚とも曜日用のセルにWEEKDAY関数を入れて、表示されるやり方にしました。 (4)については、毎回変更することはないので、9枚とも同じ表を入れました。 問題は(3)です。 (2)の曜日に対応して、担当者を表示するためにはどうすればよいのでしょうか。 宜しくお願致します。 上記でお分かりかと思いますが、エクセルは素人です。 もし、(1)、(2)についてももっとスマートな方法がありましたら、教えてください。

A-49 macOSでの使用について
このQ&Aのポイント
  • A-49はMAC OS Montereyでは使用できない可能性があります。
  • ドライバーが対応していないため、A-49のMAC OS Montereyでの使用は難しいです。
  • MAC OS MontereyでA-49を使用するには、他のドライバーを検討する必要があります。
回答を見る

専門家に質問してみよう