
SharePointで使える列の種類をDataverseで探すと、似ているようで微妙に違う。そのギャップを整理したのがこの記事です。
Dataverseには10種類以上の列データ型があります。SharePointの列と対応させながら、それぞれの特徴と注意点を一通り把握しておくと、テーブル設計のときに迷わなくなります。個人的には、最初の1〜2テーブルを作るときにこの一覧をチェックしながら進めると後悔が少ないと思っています。

テキスト型(単一行・複数行)
単一行テキスト:デフォルト100文字に注意
SharePointの単一行テキストはデフォルト255文字ですが、Dataverseは100文字がデフォルトです。変更しなければ100文字を超える入力が切り捨てられます。最大400文字まで拡張できますが、SharePointから移行するつもりで設計するなら255文字に揃えておくのが無難です。変更手順と文字数制限の詳細についてはDataverseのテキスト列文字数設定の記事でまとめています。
また、Email・電話・URLなどのフォーマット指定が用意されていますが、Power Appsのキャンバスアプリでは見た目にほぼ反映されません。モデル駆動型アプリ(Model-driven App)を使う場合は機能しますが、キャンバスアプリ主体であれば気にしなくてよいです。
複数行テキスト:SharePointより大きな上限を持つ
デフォルト1000文字で、最大100万文字まで対応しています。SharePointの複数行テキスト(約65,000文字)より上限が大きいです。議事録や長文メモをDataverseで管理する用途には十分すぎるほどの容量です。

数値型:3種類ありますが普段はdecimalで十分
数値型はWhole number(整数)・Decimal number(小数)・Floating-point number(浮動小数点)の3種類から選べます。
Whole numberは年齢・個数・順位など小数点以下が不要な数値向けです。DecimalとFloatingは小数を扱える点では同じですが、精度が異なります。Decimalは正確な桁数を保持する方式なので、金額・パーセンテージなど精度が必要な場面に向いています。Floatingは科学的計算向けの方式で、誤差が出ることがあります。業務アプリの数値入力欄であれば、DecimalかWhole numberを選んでおけば間違いありません。
日付型:Date and Time と Date Only の2種類
日付型はDate and Time(日付と時刻)とDate Only(日付のみ)の2種類から選べます。一見シンプルですが、落とし穴があります。Date Onlyを選んだとしても、Dataverseの内部では深夜0時を含む日時として保存されます。タイムゾーンの設定を誤ると、見かけ上は同じ日付でも時差の影響で1日ずれて表示される現象が起きます。
この問題を防ぐには、列作成時にadvanced optionsのTime Zone設定でTime Zone Independentを選ぶ必要があります。この設定は作成後に変更できません。詳しい仕組みと対処法はDataverseの日付タイムゾーン設定の記事で解説しています。日付列を作るときは必ずこの記事を確認してから設定するようにしています。

選択肢(Choice):SharePointの選択肢とほぼ同じですが複数選択は扱いが複雑
SharePointの選択肢列と似た感覚で使えます。選択肢の値・ラベルを設定して、ドロップダウンで選ばせる列です。Dataverseでは色を設定する機能もありますが、キャンバスアプリでは色の情報が反映されません。モデル駆動型アプリのみ色が使われる仕様です。
注意が必要なのは複数選択対応の選択肢(Multi-select Choice)です。SharePointの複数選択と見た目は似ていますが、Dataverse内部ではテーブル構造として保存されるため、Power AutomateやPower Apps数式での取り扱いが複雑になります。単純な一択選択肢で事足りる場合は、Multi-select Choiceを使わないほうが扱いやすいです。
Yes/No:SharePointのBoolean(true/false)とは別物
SharePointのYes/No列はBoolean型(true/false)ですが、DataverseのYes/No列は選択肢型の一種です。Power Appsの数式でif(YesNo列, ...)と書いても思い通りに動きません。詳しい扱い方はDataverseのYes/No列の記事でまとめていますので、ぜひ一読してから使ってください。
Auto-number:見た目は数字でも型はテキスト
自動採番の列です。採番ルールをフォーマット文字列で柔軟に設定できます。ただし型はテキスト(文字列)なので、Power Automateのフローで数値比較をしようとするとエラーになります。SharePointのID列(整数型の連番)とは別物です。仕組みと対処法はDataverseのAuto-number列の記事で詳しく説明しています。
通貨(Currency):追加すると関連列が4本自動生成される
金額を扱う列です。多通貨対応のため、通貨列を1本追加すると関連列が約4本自動生成されます。具体的には、基準通貨での金額・換算レート・使用通貨の種類などが裏側で追加されます。初めて通貨列を作ると突然テーブルに見知らぬ列が増えて驚きます。自分も最初に見たとき何が起きたのかわからず焦りました。業務で多通貨対応が必要な場合以外は、単純な数値型(Decimal number)で代用するほうが混乱を避けられます。
ルックアップ(Lookup):テーブル同士のリレーションを作る
別のテーブルを参照する列です。SharePointのルックアップ列と概念は似ていますが、Dataverseのルックアップはリレーション(多対一の関係)を自動で生成する本格的なリレーショナル設計です。
ルックアップを設定すると、ドロップダウンに参照先テーブルのプライマリ列(Primary column)の値が表示されます。SharePointは表示列を後から選び直せますが、Dataverseはプライマリ列がそのまま使われます。プライマリ列の設計が後から変更できないため、参照テーブルを作るときに何をプライマリ列にするかを先に考えておく必要があります。ルックアップ列の詳しい使い方は別記事で解説しています。
また、Power Appsの数式でルックアップ値を参照するときとSharePointのルックアップとでは書き方が異なります。Filter・Search・LookUp関数の記事に実例があるので参照してください。
数式(Formula):Power FXで計算列を作れる
Power FXの数式を使って計算列を作れます。たとえば姓と名を結合してフルネーム列を作ったり、日付の差分を日数で出したりといった用途に使います。Excelの計算列に近い感覚で設定できますが、使える関数の種類がまだ限られていて、今後拡充される予定の機能です。現時点ではシンプルな計算列であれば十分機能します。
SharePoint列との対応表
まとめとして、SharePointとDataverseの列データ型の対応を整理します。
| SharePoint列 | Dataverse相当 | 主な注意点 |
|---|---|---|
| 一行テキスト(255文字) | 単一行テキスト(100文字) | デフォルト文字数が少ない。255に変更推奨 |
| 複数行テキスト | 複数行テキスト | 上限はDataverseのほうが大きい |
| 数値 | 整数 / 小数 / 浮動小数点 | 精度によってDecimalかWhole numberを選ぶ |
| 通貨 | 通貨(Currency) | 関連列が自動追加される。Decimalで代用も可 |
| 日付と時刻 | Date and Time / Date Only | タイムゾーン設定を必ず確認。後から変更不可 |
| 選択肢 | Choice | 色設定はキャンバスアプリでは使われない |
| Yes/No(Boolean) | Yes/No(Choice型) | SharePointのBoolean(true/false)と別物 |
| ルックアップ | Lookup | リレーションを自動生成。Primary column設計が鍵 |
| ID(自動採番・整数) | Auto-number(テキスト型) | 数値比較できない。GUIDが本来の主キー |
| 計算列 | Formula(数式) | Power FXで設定。使える関数は現時点で限定的 |
SharePointのリストとDataverseを比較したい場合はSharePointリストとMicrosoft Listsの記事も参考にしてください。またExcelをデータソースとして使う場合との違いについてはExcelデータソースの記事と合わせて読むと整理しやすいです。
まとめ
- テキスト型はデフォルト100文字なので、SharePoint移行時は255文字への変更を検討しましょう
- 数値型はDecimal numberかWhole numberを選んでおけば業務アプリでは十分です
- 日付型はタイムゾーン設定が後から変更できません。作成前に必ず確認してください
- Yes/NoとAuto-numberはSharePointとは別物です。それぞれの専用記事で仕組みを把握しておくと詰まらなくなります
- ルックアップは参照先テーブルのプライマリ列設計が後から変えられないため、設計段階で何を表示名にするかを決めておきましょう
列の種類を一通り把握できると、テーブル設計の打率が格段に上がります。最初は全部理解しようとせず、まず作るテーブルに使いそうな型だけをおさえて、必要に応じてこの記事に戻ってくる使い方で十分です。
Dataverseの全体像はDataverseをSharePoint経験者向けに完全解説にまとめています。