エクセル関数についての質問です。 B列の数字を日付に変換し(D3:AA14)に設定できる関数あれば教えて欲しいです。 よろしくお願いいたします。

画像
補足

画像があらく申し訳ございませんでした。 11日~31日までは、3月。※例 3/24 1日~10日までは、4月の表示できますでしょうか。 ※例 4/1

Excel | Office系ソフトウェア178閲覧xmlns="http://www.w3.org/2000/svg">500

ベストアンサー

1
画像

1人がナイス!しています

10まではB1の翌月 =text(上記の数式, "[<=10]"&SUBSTITUTE(MONTH(EDATE($B$1,1)),"0","!0")&"!/0;"&SUBSTITUTE(MONTH($B$1),"0","!0")&"!/0") でなければ、let関数で「上記の数式」部分を分離して、edate関数の第二引数を (上記の数式<=10) とするか。 enf********さんの「数式」だと、日付のない列も全部 3/ って表示されちゃうでしょ。

画像

ThanksImg質問者からのお礼コメント

とてもわかりやすい説明、ありがとうございました。 さらに読み込んで、作業します。 それにしても、画像がすこぶる悪く、失礼いたしました。

お礼日時:9/26 21:29

その他の回答(4件)

1

空いていると思われるAE3:CN13に作業表を作って対応します。 B1セルの年月は文字列として入力されているものとしています。 抽出した日付はシリアル値で、表示形式 m/d で表示しています。 D3セルに =IF(ISERROR(MID($B3,BJ3+1,IF(ISERROR(AE3),LEN($B3),AE3-BJ3-1))),"",EDATE(DATEVALUE($B$1&MID($B3,BJ3+1,IF(ISERROR(AE3),LEN($B3),AE3-BJ3-1))&"日"),((MID($B3,BJ3+1,IF(ISERROR(AE3),LEN($B3),AE3-BJ3-1))*1)<11)*1)) この数式をD3:AA13セルにコピー AE3セルに =FIND(",",$B3) この数式をAE3:AE13セルにコピー AF3セルに =FIND(",",$B3,AE3+1) この数式をAF3:BI13セルにコピー BJ列は空白 BK3セルに =FIND(",",$B3) この数式をBK3:BK13セルにコピー BL3セルに =FIND(",",$B3,BK3+1) この数式をBL3:CN13セルにコピー

画像

1人がナイス!しています

1

きっと2021年9月と入力していると思うので そこは、9/1と入力して、書式設定⇒ユーザー定義にて yyyy年m月として下さいね。 で私なら、めんどくさがり屋なので Grumpy_the_Dwarfさんの関数を拝借して =TEXT($B$1,"m/")&TRIM(MID(SUBSTITUTE($B3,",",REPT(" ",100)),100*COLUMN(A1)-99,100)) としちゃいますかね。

1人がナイス!しています

1

C3セルに =IF(COLUMN(A1)-1<=LEN($B3)-LEN(SUBSTITUTE(SUBSTITUTE($B3,CHAR(10),","),",","")),TEXT($B$1,"m/")&TRIM(MID(SUBSTITUTE(SUBSTITUTE($B3,CHAR(10),","),",",REPT(" ",100)),100*COLUMN(A1)-99,100)),"") 右と下にコピー

画像

1人がナイス!しています

添付図のB13はセル内改行しているか、していないか この辺も重要ですね。 セル内改行している、と解釈しているので改行文字をカンマに変換しているのですが単純な「折り返して全体を表示」なら不要ですね。 実際のところどうなんでしょうね。