電子書籍の厳選無料作品が豊富!

表形式からカレンダー形式への変換

下記の様な1週間の走行距離を入力した表形式のデータがあります。
カレンダー形式の表に変換する方法を教えて下さい

入力データ
6月21日~6月27日 60キロ
6月28日~7月4日  40キロ
7月5日~7月11日 55キロ
7月12日~7月18日 
7月19日~7月25日 35キロ
7月26日~8月1日  10キロ
8月2日~8月8日  25キロ

6月

         21日   28日
         60キロ  40キロ
7月
5日   12日   19日   26日
55キロ      35キロ  10キロ 

8月
2日   9日   16日    23日
25キロ

A 回答 (1件)

例えばシート1のA列に日付が入力され、B列にも日付が入力され、C列には1週間の走行距離が入力されているとします。


お示しのケースでしたらA2セルに6月21日(数式バー上では2010/6/21)、B2セルには6月27日(数式バー上では2010/6/27)、C2セルには60キロのように入力され、下方にデータが並んでいるとします。
そこでシート2にはカレンダー式の表を作るのですがすべての月表示や日付表示は、例えば6月の場合でしたら2010/6/1のように表示することにします。

A2セルから下方にデータを並べることにしてA2セルには次の式を入力してE2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。

=IF(AND(MOD(ROW(A1)-1,4)+1=1,COLUMN(A1)=1),DATE(YEAR(MIN(Sheet1!$A:$A)),MONTH(MIN(Sheet1!$A:$A))+INT(ROW(A1)/4),1),IF(MOD(ROW(A1)-1,4)+1=2,IF(MONTH($A1-IF(WEEKDAY($A1)<=2,WEEKDAY($A1)-2,WEEKDAY($A1)-9)+COLUMN(A1)*7-7)<>MONTH($A1),"",$A1-IF(WEEKDAY($A1)<=2,WEEKDAY($A1)-2,WEEKDAY($A1)-9)+COLUMN(A1)*7-7),IF(OR(COUNTIF(Sheet1!$A:$A,A1)=0,A1=""),"",IF(AND(MOD(ROW(A1)-1,4)+1=3,A1>0),INDEX(Sheet1!$C:$C,MATCH(A1,Sheet1!$A:$A,0)),""))))

これで例えば6月でしたら月表示のセルA2セルには2010/6/1のように表示されます。これはセルの表示形式でユーザー定義で m"月" のようにすれば6月と表示させることもできます。
また、6月の最初の月曜日はA3セルに2010/6/7のように表示されます。これも日にちだけの表示にするのであればセルの表示形式でユーザー定義で d"日" のようにすれば 7日とだけ表示させることもできますね。
    • good
    • 0
この回答へのお礼

具体的且つ、明確な回答有難うございました。
初心者の自分でもとてもよくわかりました

お礼日時:2010/08/05 21:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!