Apps Scriptリファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

2018年12月16日日曜日

西暦とその年の何週目かをWEEKNUMとARRAYFORMULAで出してみる


WEEKNUM(日付, 種類)を使ってみる

ARRAYFORMULA関数を組み合わせて
与えられた日付がその年の何週目にあたるか出したときの備忘録です



日付がその年の何週目かを知りたいとき

CONCATENATEで書くとこのように書けますが
=CONCATENATE(LEFT(B2,4), "-", WEEKNUM(B2,2),"週")

これだとARRAYFORMULAで囲むときに上手く行かなかったので
(補足の失敗談参照)

同じ結果を得られる&で結合した数式を例にします
=LEFT(B2,4)&"-"&WEEKNUM(B2,2)&"週"

これをARRAYFORMULA関数で先頭行に書くだけにしたい
というのがこの記事でやりたいことです

これを
=LEFT(B2,4)&"-"&WEEKNUM(B2,2)&"週"

こうする
=ARRAYFORMULA(LEFT(B2:INDIRECT("B"&COUNTA(B2:B)+1),4)&"-"&WEEKNUM(B2:INDIRECT("B"&COUNTA(B2:B)+1),2)&"週")

この長い数式を分解して理解する手順は以下の記事に書きました
特定の列の値から特定の文字だけ抜き出したい(ARRAYFORMULA関数で)



補足 (失敗談)

この数式は
=LEFT(B2,4)&"-"&WEEKNUM(B2,2)&"週"

こう書いても同じ結果を得られますが
=CONCATENATE(LEFT(B2,4), "-", WEEKNUM(B2,2),"週")

ARRAYFORMULA関数の中でこのようにつなげると
=ARRAYFORMULA(CONCATENATE(LEFT(B2:INDIRECT("B"&COUNTA(B2:B)+1),4),"-",WEEKNUM(B2:INDIRECT("B"&COUNTA(B2:B)+1),2)&"週"))

結果が1つのセルに結合されてうまくいきませんでした


関連記事

特定の列の値から特定の文字だけ抜き出したい(ARRAYFORMULA関数で)

Latest post

Google Formsで複数の質問と選択肢の順番を毎回シャッフルしたい(Apps Script)

質問や選択肢をシャッフルする方法ついては以下のリンク先に書きました Google Formsで質問の順番をシャッフルしたい(setShuffleQuestions) Google Formsで選択肢の順番を毎回シャッフルしたい(UI設定のみ) Google Formsで選択肢の順...