
仕事でExcelを使用しています。
部下の各担当者に配布する発注書を毎月更新作成しているのですが、ほかにも多数の書類を月末時に作成しており「毎火・木曜日の日付」を手入力するのが結構手間です…。
できれば自動で表示させられたらなんて思ったのですが、例えば商品名などをA列に入力するとして、その右のB列から、毎火・木曜日のみを表示させる、何か良い手はありますでしょうか?
また、翌月1日が火曜日の場合など、翌月にかかってしまうのも困るので、これは非表示にしたいのですが…。
もしできるなら本当に助かりますのでご存知の方、お教え下さい。よろしくお願いいたします。
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セルまで右にフィルコピー
日付の表示形式はお好みのものに。
この回答への補足
すみませんー…ありがとうございます。そうですよね、いろんなパターンがあるのですから、「右」になのか「下に」なのかわからなきゃしょうがないですよね…。不勉強でした。右列に日付を、縦に商品リストを載せたいのでshiotann99の【仮定】通りでした。
※DATEとかYEARに()でいろいろ入れ子にできるなんて知りませんでした。関数辞典にも載っていなかったのに…。早速やってみます。どうもありがとうございました。
No.2
- 回答日時:
2005年8月1日をB1に入れる。
B2に=B1+5-WEEKDAY(B1)で2005/8/4が初木曜日
どこでもよいが
C16、D16、E16、・・・に
0178141521222829
と入れる。
C2に=IF($C$1+C16>=DATE(YEAR($B$1),MONTH($B$1)+1,1),"",$C$1+C16)
と入れて、K2、L2まで式複写。
C2,d2,E2、・・・・は
2005/8/42005/8/52005/8/112005/8/122005/8/182005/8/192005/8/252005/8/26
となる。しかしこの質問の不完全さは、
>毎火・木曜日の日付」を手入力す・・のセル番地が書いてないので、
なんとも完全な答えが書けないのです。具体的にセル番地と曜日を
あげてください。
VBAを望んでいないのだろうから、関数を使う答えを期待しているのであろうが、関数を使うということは
(1)結果の値が1箇所(1セルで)正し値を返すことはもちろんだが
(2)うまく複写して複数セルに複写できることが必要。
連続していないセル(上記も木曜と金曜のように異質なものが並び、土ー水はいらないなどイレギュラー)では技巧を凝らさざるを得ない。
凝らしてもできないかもしれない。必ず方法があるとは限らない。
なるほど、まだまだVBAは勉強を始めたばかりですが、すべてを関数で何とかしようとするばかりでもいけない場合があるのですね。おっしゃるとおり、テンぱるあまり、とても不親切な不完全な質問になってしまっていました。今後は気をつけたいと思います。参考になるアドバイスありがとうございました。
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
お~、これでできてしまうんですね!!マクロはなかなか理解できずわからないままだったのですが、これを機に試してみて、今後は色々覚えてみたいと思いいました。なにせ必要に迫られているのできっと頑張れそうです。苦笑
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) Excelシフト表 固定シフトの自動変換化 1 2022/04/14 16:10
- Excel(エクセル) 【Excel関数、count系】どなたか教示下さると助かります。 Excelでシフトを管理しており、 2 2022/07/09 06:34
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- Excel(エクセル) 条件付き書式で文字入力 6 2022/08/29 10:40
- Visual Basic(VBA) 列 A に同じ日が2つが必要です。 1 2023/03/28 07:25
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- Java Java、配列の問題を教えて欲しいです。 ・日、月、火、水、木、金、土 ・各曜日の英語 を2次元配列 2 2023/07/10 19:14
- Excel(エクセル) Excelで祝日を除く1回目の金曜日を返す 3 2023/01/31 16:07
- Excel(エクセル) 週毎の集計 2 2023/08/04 16:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのVBAで集計をしたい
-
【関数】同じ関数なのに、エラ...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
Office2021のエクセルで米国株...
-
【画像あり】オートフィルター...
-
【マクロ】実行時エラー '424':...
-
特定のセルだけ結果がおかしい...
-
【マクロ】列を折りたたみ非表...
-
他のシートの検索
-
【マクロ】アクティブセルの時...
-
【条件付き書式】シートの中で...
-
【マクロ】【相談】Excelブック...
-
ページが変なふうに切れる
-
エクセル ドロップダウンリスト...
-
【マクロ】オートフィルターの...
-
【マクロ】元データと同じお客...
-
【マクロ】3行に上から下に並...
-
エクセルのdatedif関数を使って...
-
【マクロ】数式を入力したい。...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報