- ベストアンサー
Excel2007 関数について
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
INPUTシートをシート1、OUTPUTシートをシート2として説明します。 シート1では例えばA1セルからD1セルに項目名が有り、それらの2行目から下方にお示しのようなデータが入力されているとします。 そこでお求めのシート2ですがA4セルから下方にシート1のC列にあるA,B,C,D,Eなどの文字を予め入力します。 B3セルには次の式を入力してから右横方向にドラッグコピーします。 =IF(DATE(YEAR(MIN(Sheet1!$A:$A)),MONTH(MIN(Sheet1!$A:$A)),DAY(MIN(Sheet1!$A:$A))+COLUMN(A1)-1)>MAX(Sheet1!$B:$B),"",DATE(YEAR(MIN(Sheet1!$A:$A)),MONTH(MIN(Sheet1!$A:$A)),DAY(MIN(Sheet1!$A:$A))+COLUMN(A1)-1)) それら3行目のセルには日付のシリアル値が表示されますので3行目を選択してから右クリックして「セルの書式設定」の「表示形式」の「ユーザー定義」で種類の窓には d と入力して日にちを表示させます。 B2セルには次の式を入力して右横方向にドラッグコピーします。 =IF(B3="","",IF(OR(COLUMN(A1)=1,DAY(B3)=1),B3,"")) 3行目と同様に「セルの表示形式」の「ユーザー定義」で種類の窓には mmm と入力してOKします。 最後にB4セルには次の式を入力して右横方向にドラッグコピーしたのちに下方向にもドラッグコピーします。 =IF(OR($A4="",B$3=""),"",IF(AND(B$3>=INDEX(Sheet1!$A:$A,MATCH($A4,Sheet1!$C:$C,0)),B$3<=INDEX(Sheet1!$B:$B,MATCH($A4,Sheet1!$C:$C,0))),INDEX(Sheet1!$D:$D,MATCH($A4,Sheet1!$C:$C,0)),""))
その他の回答 (1)
- kuma310min
- ベストアンサー率40% (212/518)
INPUT(sheet名は「condo」)のG列(←B,A,D,C,E,Fが入力されている)を 基準にして、昇順で並べ替えをしてあげれば済むのでは・・・?