2点教えて頂きたいことがありますのでお願いします。
1.A1に数字の1を入力した場合B1に4月、更にA2に1を入力した場合B1に5月、更にA3に1を入力した場合B1に6月・・・順に12月まで表示させるにはどうしたら良いのでしょうか。
この時、A1~A12は、1が入ったままです。
2.A1に4月入力した場合、A2からA31までのA列に4月1日から4月30日までの土曜日と日曜日と祝日(休日)を除いた日にちを表示すさせるにはどうしたら良いのでしょうか。
5月と入力した場合も同様です。
質問の2点は、別々のものです。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
1.の問題==>VLOOKUP関数の利用
B1 に =IF(A1=1,VLOOKUP(ROW(),{1,"4月";2,"5月";3,"6月";4,"7月"},2,FALSE),"")
B12まで式を複写。
(),{1,"4月";2,"5月";3,"6月";4,"7月"},はその後手抜きしてます。
12,"12月"まで入れること。
ーーー
2。の問題
Sheet2
A列 B列
20084<==年と月A1,B1
2008/4/131
2008/4/242
2008/4/353
2008/4/464
2008/4/57
2008/4/61
2008/4/725
2008/4/836
2008/4/947
2008/4/1058
2008/4/1169
2008/4/127
2008/4/131
2008/4/14210
2008/4/15311
2008/4/16412
2008/4/17513
2008/4/18614
2008/4/197
2008/4/201
2008/4/21215
2008/4/22316
2008/4/23417
2008/4/24518
2008/4/25619
2008/4/267
2008/4/271
2008/4/28220
2008/4/29321
2008/4/30422
2008/5/15
2008/5/26
2008/5/37
ーーーー
上記B、C列は
B2は =WEEKDAY(A2)
C2は =IF(AND(MONTH(A2)=$B$1,NOT(OR(B2=1,B2=7))),MAX($C$1:C1)+1,"")
それぞれ下方向に式を複写。
結果
上記B,C列の通り。
ーーーー
Sheet1に置いて
=INDEX(Sheet2!$A$2:$C$40,MATCH(ROW()-1,Sheet2!$C$2:$C$40,0),1)
と入れて下方向に式を複写
結果
2008/4/1
2008/4/2
2008/4/3
2008/4/4
2008/4/7
2008/4/8
2008/4/9
・・・
2008/4/29
2008/4/30
#N/A
#N/A
ーーー
上記の手抜き
(1)祝日を考慮
(2)Sheet1の#N/Aを出さない
ーーー
(2)は=IF(ROW()-1>max(Sheet2!$C$1:$C$40),"",上記式)
(1)は祝日日付リストをある列につくり、VLOOKUP関数で検索し
今考えているSheet2のA列のhi日付けが祝日ならD列に1と出す。
=IF(AND(MONTH(A2)=$B$1,NOT(OR(B2=1,B2=7))),MAX($C$1:C1)+1,"")
の式を
=IF(AND(MONTH(A2)=$B$1,NOT(OR(B2=1,B2=7)),D2<>1)),MAX($C$1:C1)+1,"")
に変える。
以上のやり方は、Sheet2という作業シートを使うので、自称 imogasi方式。
作業シートを使うが、やっていることが、エクセル関数中級の人にもわかると思ってあげます。
ーーー
小生ならVBAでプログラムを組んでやります。ロジックは上記とほぼ同じです。
日付決定(最初は月の1日)
祝日か、土日かーー>表示しない
聡でないA列に日付等書き込む
日付を+1して繰り返し
つきが変わると終了
No.2
- 回答日時:
1.
まず、条件の数があいません。B1の最終が12月なら、A列は9行だけ
でおしまいです。A10以降のセルに入力があった時の処理は質問に
書いてありませんね。
次に、B列に表示させる値の形式が不明です。文字列「4月」なの
か、特定の日付で表示形式が「m"月"」なのかで処理が大きく変わ
ります。
さて、上記を勝手に今年度の4月から3月までの日付形式でやること
にしますと、
B1: =date(2008, sum(A1:A12)+3, 1)
で表示形式「m"月"」とすればオッケーです。A列に何も入力がない
と昨年度の3月になるのはご愛嬌。
2.
年が確定しないのに曜日や祝日の話は出来ませんね。ちなみに祝日
なんてExcelは関知しませんので、何年何月何日が祝日なのかは、
自分で一覧表でも作って指定する必要があります。そこらをクリア
すれば、分析ツールのworkday関数一発です。A1に質問1の様に日付
形式で入力し、A2は =workday(A1-1,1,祝日一覧)。A3以降は素直に
=workday(A2,1,祝日一覧)。月末にかかりそうなあたりは月が変わ
るなら""を返すとかそもそも前日が""なら無条件で""だとか、その
へんを考慮して =if(A19="","",if(month(workday(A19,1,祝日一覧
))<>month($A$1),"",workday(A19,1,祝日一覧)))な感じで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelについて A1からA12まで、1月〜12月と入力し、 B1からB12の範囲に、C1とD1に 4 2022/05/26 22:48
- Excel(エクセル) Excelで祝日を除く1回目の金曜日を返す 3 2023/01/31 16:07
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) エクセルで月末、月初の判定をしたい。 4 2022/05/18 23:22
- Excel(エクセル) Excel ある日の45日後の計算 及び 3か月後の計算 6 2022/04/05 13:44
- Excel(エクセル) 現時点の年齢を算出して、その年齢と一致したセルを色付けしたい。 4 2022/06/23 17:49
- Excel(エクセル) ExcelにてA1セルに1、B1セルに月と入力した際に、A列に日付、B列に曜日が入力される様になる為 1 2023/03/02 06:47
- Excel(エクセル) Excel セルに入っている日付を参照して、別シートのリストを表示させたい 1 2022/04/12 17:02
- Excel(エクセル) Excel 関数 数式 について 2 2022/09/02 21:45
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
【Microsoft Office Excel Comp...
-
Excelはなんで先頭の0を消すん...
-
Excelのセルを飛ばして入力する
-
別シートからの文字を変更
-
エクセルの行の抽出について質...
-
Excelのオートフィル
-
Excel 2019 のピボットテーブル...
-
スプレッドシート クエリ関数 1...
-
excelの不要な行の削除ができな...
-
Excel初心者です。 詳しい方、...
-
【Excel】セル内の時間帯が特定...
-
Excel初心者です。 詳しい方、...
-
EXACT関数とIF関数の組み合わせ...
-
Excelのグラフ軸について
-
スマートな関数を教えて下さい。
-
Excelで全角を半角にしたいので...
-
【マクロ】エクセルにかいてあ...
-
Excel:一部のフォントでセルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報