Power Automate クラウドフローで中央値を求める方法

Power Automate
この記事は約4分で読めます。

配列データを扱っていると、「この中の中央値を出したい」と思う場面があっても、Power Automate のクラウドフローには中央値を直接求める関数が用意されていません

そのため、複数の関数を組み合わせて式を作成する必要があります。

数値の配列を用意する

まずは、中央値を求めたい単純な数値の配列を用意します。
配列の取得元は問いませんが、ここではすでに配列が取得できている前提で進めます。

[  10,  3, 8,  5,  6,  2 ]

ここで重要なのは単純な数値の配列になっている必要がある点です。例えば以下のような場合今回の方法は使えないので、単純な数値の配列に選択アクションなどを使って変換する必要があります。

[{"value":1},{"value":3},{"value":5}]

中央値を求めるための考え方

中央値を求める流れは次のとおりです。

  1. sort() で配列を昇順に並び替える
  2. length() で配列の要素数を取得する
  3. 要素数が 奇数か偶数か を判定する
  4. 条件に応じて計算方法を切り替える

計算方法が分かれるため、ここでは if() 関数を使用します。

if(
  equals(mod(length(outputs('作成')),2),1),
  float(sort(outputs('作成'))[
    div(length(outputs('作成')),2)
  ]),
 奇数の場合,
 偶数の場合
)

奇数の場合の式

配列の要素数が奇数の場合は、並び替えた配列の真ん中の値を取得します。

使用する式は次のとおりです。

float(
  sort(outputs('作成'))[
    div(length(outputs('作成')),2)
  ]
)

length()div( ,2) することで、
配列の中央のインデックスを求めています。

if(
  equals(mod(length(outputs('作成')),2),1),
  float(sort(outputs('作成'))[
    div(length(outputs('作成')),2)
  ]),
 float(
  sort(outputs('作成'))[
    div(length(outputs('作成')),2)
  ]),
 偶数の場合
)

偶数の場合の式

配列の要素数が偶数の場合、中央の値は1つではなく2つ存在します。
そのため、その2つを取得して平均を求めます。

div(
  add(
    float(sort(outputs('作成'))[
      sub(div(length(outputs('作成')),2),1)
    ]),
    float(sort(outputs('作成'))[
      div(length(outputs('作成')),2)
    ])
  ),
  2
)

ここでは、

  • div(length(),2) で右側の中央の位置を求める
  • sub( ,1) で左側の中央を求める
  • add() で2つの値を足す
  • div( ,2) で平均を計算する

という流れになっています。

奇数・偶数をまとめた最終的な式

上記の処理を if() でまとめると、次のような式になります。

if(
  equals(mod(length(outputs('作成')),2),1),
  float(
    sort(outputs('作成'))[
      div(length(outputs('作成')),2)
    ]
  ),
  div(
    add(
      float(sort(outputs('作成'))[
        sub(div(length(outputs('作成')),2),1)
      ]),
      float(sort(outputs('作成'))[
        div(length(outputs('作成')),2)
      ])
    ),
    2
  )
)

この式で、奇数・偶数どちらの配列でも中央値を取得できます。

まとめ

Power Automate のクラウドフローには中央値専用の関数はありませんが、
sortlengthifdiv などを組み合わせることで対応できます。

少し式は長くなりますが、
処理の流れを分解して考えることで理解しやすくなります。

実際のフローでぜひ試してみてください。

Power Apps学習の決定版!コントロール別YouTube再生リスト完全ガイド

Power Appsを学習していて「どのコントロールをどう使えばいいのかわからない」「実際の使い方を動画で見ながら覚えたい」と思ったことはありませんか?

実践的な知識を効率よく身につけられるよう、現在公開している動画を整理したYouTube再生リスト集をご紹介します。

Power Apps 学習リソース一覧

コントロール・機能 リンク
ギャラリー 再生リスト
テキストラベル 再生リスト
テキスト入力 再生リスト
フォーム 再生リスト
ラジオ 再生リスト
スライダー 再生リスト
トグル 再生リスト
コンボボックス 再生リスト
ドロップダウン 再生リスト
ボタン 再生リスト
日付選択 再生リスト
画像 再生リスト
タイマー 再生リスト
コンポーネント 再生リスト
Copilot 再生リスト
クラシックコントロール 再生リスト
表示加工 再生リスト
バリデーション 再生リスト
ひと手間デザイン 再生リスト
ハンズオン 再生リスト
全体Tips 再生リスト
無料配布 再生リスト

コメント

タイトルとURLをコピーしました