この記事では、Power Appsのデータ型の種類、使い方や例と型の変換方法を紹介します。
データ型とは
データ型とは、Power Appsで使用する文字列、数値、日付やブール値をPower Apps側に判断させるための型のことです。この型が異なるものを関数の入力として使用するとうまく動いてくれないことがあります。
テキスト型はラベルやボタンなどのTextプロパティなど、画像型は画像コントロールのImageプロパティという風にどのプロパティにどのデータ型を入力すべきかはあらかじめ決められています。
データ型の種類と主な用途
ブール(Boolean)値
true/falseの値です。フラグとしても利用できます。
主な使用用途としては、以下の画像のようにIfなどの関数の論理式で使用することです。
変数は、Set関数などで指定することが可能です。以下の画像のボタンにはそれぞれSet(A,true),Set(A,false)が割り当てられていて、それぞれのボタンを押すことでAという変数のtrue/falseを切り替えられます。
テキスト型
""で囲まれた文字はすべてテキストとして判別されます。入力された変数などで”Text型を入力してください”などの”エラーが出た際にはText関数を利用することでテキスト型に変換できます。
数値(Number)型
数値のみを入力した場合はNumber型として判別されます。小数点がついているものもNumber型となります。テキスト型と同じくエラーが出た際には、Value関数を利用すると数値型に変換できます。
日付(Date)型
日付を入力すると日付型として判別されます。ただし、そのまま入力してもテキストとして判別されてしまうため、Date関数などを使用します。
時間(Time)型
時刻を指定したときの型です。日付型と同じように変換のためにTime関数を使用します。
日付時間(DateTime)型
日付型と時間型を合わせたものです。DateTime関数やNow関数を使用します。
レコード(Record)型
{列名1: 値1,列名2: 値2,}のように書くことでレコード型のデータを作成することができます。
レコードが必要ですというエラーになっている場合は、データソースがテーブル型になっている場合が多いです。First関数, Last関数, Index関数またはLookUp関数でレコード(1つの行に絞り込む)にすることができます。
また、テキスト型が必要ですというエラーになっている場合はレコード型のためどの列を参照すればよいかがわからない状態になっている可能性があります。
末尾に.列名か.Valueを入力すると解決します。
Dropdown.Selected、Gallery.Selected、ThisRecordがレコード型に相当します。
テーブル(Table)型
Table関数を使用して
Table ({列名1: 値1,列名2:値2},{列名1:値3,列名2:値4})
という形でテーブルを新しく作成するか、レコード型をまとめます。
ClearCollect関数で作成したコレクションや、SharePointリストなどのデータソースがテーブル型に相当します。
Table型で作成したテーブルは、Collect関数などでコレクションに入れることができます。
色(Color)型
色の情報を持つ型です。ColorValue( "カラーコード" )、RGBA( 赤,緑,青,アルファ成分)などのようにして色を指定することができます。
コントロールの色を変更したい場合(Colorプロパティ、Fillプロパティなど)にはこれらの関数を使用します。
まとめ
変換前の型 | 変更後の型 | 数式 | 備考 |
---|---|---|---|
テキスト | 数値 | Text(数値型値) | エラーメッセージが”Text型が必要です。”の場合に使用する。 |
数値 | テキスト | Value(テキスト型値) | エラーメッセージが”Number型が必要です。”の場合に使用する。 |
テキスト | 日時 | DateTime(テキスト型値) | エラーメッセージが”DateTime型が必要です。”の場合に使用する。 |
テキスト | レコード | {列名:テキスト型値} | 列名は任意で設定可だが、何らかのデータ操作関数で使用する場合はデータソース側と同じにする必要あり。 |
レコード | テーブル | Table(レコード型値, レコード型値) | レコード型の値をカンマ区切りで結合可能。※列名は同一の場合に限る |
テーブル | レコード | First(テーブル型値) | 最初の行を取得する場合はFirst, 最後の行を取得する場合はLast, n番目の行を取得する場合はIndex関数を使用する。 |
レコード | テキスト、数値など | レコード型.列名 | データ型はテーブル側の定義による。 |
初心者のうちはデータ型の違いがよくわからないと思いますが、使っていくうちに理解できるようになります。
データ型が一致しないことでエラーが出ることがよくありますので、変換する関数をメモしておくといいかもしれません。
コメント