拾って落とすエンジニア活動ログ

各種技術や周辺知識のTIPS、振り返り

SharePointのリストで曜日を表示する

SharePointのリストは簡単に作れて便利ですね。

PowerAutomateでもよく活用していますが・・・日付型の表示が気に食わないとか、曜日をどうやって表示するのかというところで模索してみたので、メモです。

 

「テストタイトル」というタイトルでリストを作り、「日付」という名前で日付と時刻型の列を追加しました。

その後、最初のレコード(行)として今日の日付を「日付」列に設定したレコードを作ってみました。

 

f:id:yb300k:20211003150728p:plain



ではここから、やりたいこと(兼目次)は

 

です。

 

1)日付の表示を 年/月/日 に

 

日付 列の横の下矢印メニューから、この列の書式設定をクリックします。

 

f:id:yb300k:20211003152521p:plain



f:id:yb300k:20211003152619p:plain

 
 
一番下、「詳細モード」リンクで、
 

f:id:yb300k:20211003152756p:plain

上記のように入力して保存しましょう。これで年月日の順になります。
JSONのところに入っているのはこんな文字列です
 
{
"elmType": "div",
"txtContent": "=getYear(@currentField )+'/'+(getMonth(@currentField)+1)+'/'+getDate(@currentField)"
}

 

なお、以下でもいけるのかなと思ったら、うまくいかず、月日年になってしまいました。自分の環境のロケールの設定がよくないのかもしれません。しかし調べがつかず・・いいから年月日!なら上のgetYearなどをごりごり書いたほうが確実かと思いました。

{
  "elmType": "div",
  "txtContent": "=toLocaleString(@currentField)"
}

 

なお、JSONを入力した後プレビューボタンですぐに確認できるので、いろいろ試してみてください。

利用可能な関数はこちら( 演算子 )の項あたりにあります。TEXT関数は使えません。

docs.microsoft.com

これで日付 列の表示を 年/月/日 に変更できました。

 

2)曜日を表示したい

先ほどの日付列をもとに、曜日表示用の列を別途作る方法で紹介します。

画面の右上、歯車マークで、リストの設定をクリックします。

f:id:yb300k:20211003153620p:plain

 

列の作成 をクリック。

 

f:id:yb300k:20211003153654p:plain

 

列の作成で、列名  は 曜日 、集計値 型で数式を指定した列を追加します。

 

f:id:yb300k:20211003153824p:plain


数式に入っているのはこんな文字列です。

 

=TEXT(WEEKDAY([日付]),"ddd")

※2022/5/21追記 TEXT([日付],"ddd")でも曜日表示できるとのこと。ほげさんありがとうございます。

 

右下に OK ボタンがありますので押して保存します。

なおこちらも使える関数リストはこちら。

support.office.com

 

リストに戻ると・・・

曜日列が追加されました!

 

 

f:id:yb300k:20211003153904p:plain

なお、先ほどの数式を

=TEXT(WEEKDAY([日付]),"ddddd")

 

に変更すると、 Sunday  と省略なしで表示してくれます。

 

悲しいお知らせとしては・・・ExcelのTEXT関数では、日本語の曜日表示(月火水 )が

=TEXT(A1,"yyyy/MM/dd aaa")

みたいに「aaa」とか「aaaaa」でできますよね。

SharePointではaaa も aaaaa も使えませんでした。

※代わりと言っては何ですが、こちらの数式にはIFを使うことも可能なので、
=IF(WEEKDAY([日付])=1,"日曜",IF(WEEKDAY([日付])=2,”月曜"・・・
といった数式を1から7まで全部書けば日本語表示もできます。スマートさには欠けますが。。

 

感想

案外トリッキーで調べにくかったです。同じような箇所なのに使える関数が違ったりするの、つらい。マニュアルも、文字列フォーマットの説明とか少ないですし。

 

参考になれば幸いです。