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ドキュメントに見出しを追加したい

今回の例では、ドキュメントの末尾に「見出しD」 を追加します。 見出しA, B, C, Dのスタイルは、見出し3 ( HEADING3 ) に設定しています。  下記Code.gsの  GOOGLE_DOCUMENT_URL を設定して  addHeadingToEnd()  を...