3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[PowerApps Tip's]曜日に関する注意点と文字列置換

Posted at

記事投稿時点(2019/2/11)の仕様なので、今後VerUpにより改善されると思われますが・・・。おや?ってなったので投稿しておきます。
#Now() → 年/月/日(曜日)ってしたいでしょ?
日付のデータを画面表示する際、曜日まで含んだ形式にしたい場合があると思います。そんな時に利用するのが「Text関数」です。

■参考URL
 PowerApps の Text 関数

ddd 省略形で曜日を表示します (Sun ~ Sat)。
dddd 完全な名前で曜日を表示します (Sunday ~ Saturday)。

なるほど。では、日~月、みたいな省略形は”ddd”かな?と思いますよね?
※ちなみに、C#使いの方は”yyyy/MM/dd”ってしちゃうと思うのですが、上記参考URLの公式でプレースホルダーをよくご確認ください。色々と方言の違いがあります注意です。

#日本語環境におけるText関数の曜日
さて、どうなるか?画面を確認ください。
01.png

####①の箇所 m/dd(dddd)

Label.Text
Text(Now(), "[$-ja-JP] m/dd(dddd)", "ja-JP" )

####②の箇所 m/dd(ddd)

Label.Text
Text(Now(), "[$-ja-JP] m/dd(ddd)", "ja-JP" )

”dddd”でも、”ddd”でも、”月曜日”となってしまいます。
”月”とはなりません。

どうやら現状の仕様では、日本語環境における曜日については、省略された形式は表示されないようです。では、③のように省略した形式にしたい場合は、どうすればよいか?

####③の箇所 ”曜日”の文字列をブランク("")で置換

Label.Text
Substitute(Text(Now(), "[$-ja-JP] m/dd(ddd)", "ja-JP" ),"曜日","")

対策としては以上です。念のため、関数を重ねているので解説しておきます。

#解説
③の式は、”ddd”で指定した省略された形式(でも、日本語環境だと省略されてこない)を指定したText関数の結果を、さらにSubstitute関数で”曜日”という文字列をブランク("")で文字列置換しています。

これにより、現時点の仕様で”〇曜日”となってしまっても、”〇”(日~土)と表示されます。また、”ddd”を指定しておくことにより、将来的に日本語環境でも省略形になるよう更新が入った場合でも、出力される結果は変わらないハズです。なので、修正をし忘れても大丈夫。(きっとねw)

ここでもC#使いは、C#のReplace関数を思い浮かべるかと思いますが、それに該当する機能がPowerAppsではSubstitute関数です。PowerApps の Replace関数C#と挙動が異なりますのでご注意ください。(自分は今でもなれなくて、アレ?ってなるw)

■参考URL
 PowerApps の Replace および Substitute 関数

#まとめ

  • 日付型のデータから曜日が取得したい場合はText関数で"dddd"、または"ddd"
  • "ddd"が省略型 (Sun ~ Sat)
  • "dddd"が完全な名前 (Sunday ~ Saturday)
  • 日本語(ja-JP)の場合、"ddd"でも"dddd"でも結果が同じ”〇曜日”になる
  • "曜日"の文字列が不要な場合は、文字列置換「Substitute関数」を活用

やーしかし、”月曜日”の省略型は”月”だと思うじゃん?まさかね、不具あ・・・じゃない仕様だとは思わないじゃん?みたいな気持ちになりましたとさ。

VerUpで当記事の動きは改善されると思います。どちらかというと、文字列置換をすぐ「Replace」で書いて、アレ?ってなるので、その備忘録も兼ねたネタでした。いや、ほんとね。PowerApps の 関数は、C#で準備されてるモノと同音異義語みたいな感じで、動作やらが異なるポイントが多いですね。関数のDocsをチャンと確認して、実際に動作をチェックしないと、どーしようもないトコでハマりかねないですね(苦笑

それでは、皆さま、素晴らしい Power Platform Life を!

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?