MENU

gallery一覧の並び替えについて

並び替えで利用できる式には Sort関数 と SortByColumns関数 があります。
どのような使い分けをすれば良いのかいまいち分かりません。

Descending(降順)

  • 数字の大きい方から小さい方に並ぶ
  • 直近の日付から古い方に並ぶ

Ascending(昇順)

  • 数字の小さい方から大きい方に並ぶ
  • 古い日付から直近の日付に並ぶ
目次

Sort関数

基本的な式は以下の通り

Sort(データソース, 並び替え対象の式, 並び順)

Sort('タスク管理リスト', Title, SortOrder.Descending)

並び替えの対象が単純な列だけではなく、式(関数や計算式)も使えることが特徴的です。
例えば Len(Title) や DateDiff(…) など

例 Title列の文字の長さで並び替える

Sort(タスク管理リスト, Len(Title), SortOrder.Descending)

ですが、式を使用した瞬間、委任できなくなるため注意です

SortByColumns関数

基本的な式は以下の通り

SortByColumns(データソース, "列名", 並び順)

SortByColumns(タスク管理リスト,"Title",SortOrder.Descending)

Sortのように式を使用することはできず、単純列名で指定を行います。
ある意味分かりやすく、委任可能な列であれば確実に委任されます。

複数列での並び替えも可能です

SortByColumns('タスク管理リスト',
"Title", SortOrder.Descending,
"field_3", SortOrder.Ascending
)

※リスト列は内部列名で設定する必要があります

SharePointリストで委任できる列
  • Title(既定のタイトル列)
  • 数値列
  • 日付列
  • 単一行テキスト列

以下の列は委任できません

列の種類備考
複数選択の選択肢(Choice)列単一選択なら委任可能。複数選択は不可。
ユーザー(Person or Group)列ユーザー名やメールアドレスでの並び替えは不可。
複数行テキスト(Multiline Text)列プレーンテキストでも委任不可。
添付ファイル列並び替え対象として使用不可。
ハイパーリンクまたは画像列URLや画像の並び替えは不可。
計算列(Calculated Column)式の結果は委任不可。
ルックアップ列(Lookup)参照先の値で並び替えは不可。
Yes/No(Boolean)列並び替えは不可。フィルターは可能。

まとめ

計算式を使用した並び替えを行いたい場合は Sort ※ただし委任不可
計算式を使用しない並び替えの場合は SortByColumns

あと、複数の列を使用した並び替えはSortByColumnsでしか実現できないため、式を複数使用して並び替えることもできないと考えた方が良いですね。

Byカラム(列)でソートする、って覚えておけば間違いなし。

絞込みと並び替えを混在させる場合

例えば、進捗状況の列が「完了」だけに絞った中で、期限(field_2)を昇順、管理番号(Title)を降順にしたい。
※すべての列を1行テキストで作成したリストです

式は以下のようになります。
Filter部分は列名が「進捗状況」でも問題ないですが、並び替えで利用する列は内部列じゃないと認識されない模様。

SortByColumns(
    Filter(タスク管理リスト, 進捗状況 = "完了"),
    "field_2", SortOrder.Ascending,
    "Title", SortOrder.Descending
)

広告

目次