LANG SELRCT

コードを書く場所

2019年8月26日月曜日

スプレッドシートのセルに入力されている日時から年月日と年月と何週目かを取得したい


日時はA列に入っている想定


B列に日付のみ抽出したい
=ARRAYFORMULA(MID(A2:INDIRECT("A"&COUNTA(A2:A)+1),1,10))


C列に年月のみ抽出したい
=ARRAYFORMULA(MID(B2:INDIRECT("B"&COUNTA(B2:B)+1),1,7))


D列にその年の何週目か取得したい
=ARRAYFORMULA(LEFT(B2:INDIRECT("B"&COUNTA(B2:B)+1),4)&"-"&TEXT(WEEKNUM(B2:INDIRECT("B"&COUNTA(B2:B)+1),2),"00")&"週")


補足

何週目か取得したい場合に、以下のようにやると
=ARRAYFORMULA(LEFT(B2:INDIRECT("B"&COUNTA(B2:B)+1),4)&"-"&WEEKNUM(B2:INDIRECT("B"&COUNTA(B2:B)+1),2)&"週")

1週目〜9週目が一桁になり
このようになってしまう

何週目
2019-10週
2019-11週
2019-12週
2019-13週
2019-14週
2019-15週
2019-16週
2019-17週
2019-18週
2019-19週
2019-1週
2019-20週
2019-21週
2019-22週
2019-23週


TEXT関数を利用してこう書くことで解決しました
=ARRAYFORMULA(LEFT(B2:INDIRECT("B"&COUNTA(B2:B)+1),4)&"-"&TEXT(WEEKNUM(B2:INDIRECT("B"&COUNTA(B2:B)+1),2),"00")&"週")

何週目
2019-01週
2019-02週
2019-03週
2019-04週
2019-05週
2019-06週
2019-07週
2019-08週
2019-09週
2019-10週
2019-11週
2019-12週


関連記事

特定の列の値から特定の文字だけ抜き出したい(ARRAYFORMULA関数で)
西暦とその年の何週目かをWEEKNUMとARRAYFORMULAで出してみる


参考

TEXT
https://support.google.com/docs/answer/3094139?hl=ja