最初に、VBA(マクロ)を使用せず関数のみで表示したいです。
やりたいことは、
入力した夏時間の開始曜日・開始時刻から終了曜日・終了時刻まで、
または、
冬時間の開始曜日・開始時刻から終了曜日・終了時刻までの日本時間としての表示、時間外は空白にしたいです。
では、詳しいことを下記に記載していきます。
----------------------------------------------------------------------------------------------------
「元データ」シートというシートから「計算」シートというシートのA2以下にGMT±0の日時の計算式が入っており、「計算」シートというシートのB2以下に日本時間としての日時の計算式が入っています。
基本的には1分ずつのデータが入っています。
データ量が多すぎるため約1年分の計算式が入っています(400000行)。
■「計算」シートのA2の計算式(GMT±0の日時):
=IF(ISBLANK(元データ!$A2),"",DATE(YEAR(TEXT(SUBSTITUTE(LEFT(元データ!$A2,FIND(",",元データ!$A2,1)-1),"-","/"),"YYYY/MM/DD HH:MM")),MONTH(TEXT(SUBSTITUTE(LEFT(元データ!$A2,FIND(",",元データ!$A2,1)-1),"-","/"),"YYYY/MM/DD HH:MM")),DAY(TEXT(SUBSTITUTE(LEFT(元データ!$A2,FIND(",",元データ!$A2,1)-1),"-","/"),"YYYY/MM/DD HH:MM")))+TIME(HOUR(TEXT(SUBSTITUTE(LEFT(元データ!$A2,FIND(",",元データ!$A2,1)-1),"-","/"),"YYYY/MM/DD HH:MM")),MINUTE(TEXT(SUBSTITUTE(LEFT(元データ!$A2,FIND(",",元データ!$A2,1)-1),"-","/"),"YYYY/MM/DD HH:MM")),))
■「計算」シートのB2の計算式(日本時間としての日時:GMT+9):
=IF($A2="","",IF(OR(基本設定不変!$E$3="無",AND(IF(ISNUMBER(基本設定不変!$G$3),MONTH(DATE(YEAR($A2),基本設定不変!$F$3,8-WEEKDAY(YEAR($A2) & "/" & 基本設定不変!$F$3,FIND(基本設定不変!$H$3,"日月火水木金土")+10)+(基本設定不変!$G$3-1)*7))=基本設定不変!$F$3,基本設定不変!$G$3="最終"),IF(ISNUMBER(基本設定不変!$L$3),MONTH(DATE(YEAR($A2),基本設定不変!$K$3,8-WEEKDAY(YEAR($A2) & "/" & 基本設定不変!$K$3,FIND(基本設定不変!$M$3,"日月火水木金土")+10)+(基本設定不変!$L$3-1)*7))=基本設定不変!$K$3,基本設定不変!$L$3="最終"))),TEXT($A2+IF(AND(基本設定不変!$A$3=9,基本設定不変!$B$3=9),基本設定不変!$A$3/24,IF(AND(基本設定不変!$A$3<>基本設定不変!$B$3,DATE(YEAR($A2),基本設定不変!$F$3+(基本設定不変!$G$3="最終"),8-WEEKDAY(DATE(YEAR($A2),基本設定不変!$F$3+(基本設定不変!$G$3="最終"),1),FIND(基本設定不変!$H$3,"日月火水木金土")+10)+(SUM(基本設定不変!$G$3)-1)*7)+基本設定不変!$I$3<=$A2+9/24,$A2+9/24<=DATE(YEAR($A2)+IF(ISERROR(FIND("翌",基本設定不変!$J$3,1)),0,1),基本設定不変!$K$3+(基本設定不変!$L$3="最終"),8-WEEKDAY(DATE(YEAR($A2)+IF(ISERROR(FIND("翌",基本設定不変!$J$3,1)),0,1),基本設定不変!$K$3+(基本設定不変!$L$3="最終"),1),FIND(基本設定不変!$M$3,"日月火水木金土")+10)+(SUM(基本設定不変!$L$3)-1)*7)+基本設定不変!$N$3),基本設定不変!$A$3/24,基本設定不変!$B$3/24)),"YYYY/MM/DD HH:MM")+0,"変換不能"))
「計算」シートの表示結果例:
A2:2013年01月02日 04:07、B2:2013年01月02日 13:07
A3:2013年01月02日 04:08、B3:2013年01月02日 13:08
A4:2013年01月02日 04:09、B4:2013年01月02日 13:09
A5:2013年01月02日 04:10、B5:2013年01月02日 13:10
A6:2013年01月02日 04:11、B6:2013年01月02日 13:11
もっと記載しなければならないことがあるのですが文字数が足りないため、質問名「開始曜日・時刻~終了曜日・時刻の日時の表示2」にて記載したいと思います。
「開始曜日・時刻~終了曜日・時刻の日時の表示2」も見て頂き、回答をいただきたいと思います。
よろしくお願いします。
お礼
回答ありがとうございます。 大半の方がうんざりするするのは分かりますが、それをご理解いただいた方に回答を頂きたかったと思いました。 補足しますと詳しく説明しなければご理解していただけないのではないかと思い、非常に長文となり文字数が足りないため、複数の質問となってしまいました。 ありがとうございました。