AlteryxのFormula式におけるビット演算いろいろ

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、小澤です。

みなさん、AlteryxのFormulaツールやFilterツールは使ってますか? これらは、多くのツールが存在するAlteryxの中でも比較的利用頻度の高いツールだと思われます。

これらのツールではFormula式を使って処理内容を記述します。 Formula式はワークフローの作成方法と同様、同じことを実現するにしても複数の書き方が考えられます。

今回は、その中からビット演算を行う関数について書いていきます。

どんな関数を紹介するの?

今回は、Math:Bitwiseにある関数たちを紹介していきます。

紹介する関数は

  • BinaryAnd
  • BinaryOr
  • BinaryXOr
  • BinaryNot
  • ShiftLeft
  • ShiftRight

となります。

関数紹介

では、どんどん紹介していきます。

BinaryAnd

BinaryAnd関数はビットごとのANDをとる演算です。

まずは以下のように計算対象として利用する数値の他に演算結果をわかりやすくするため、 IntToBin関数を使ってそれを二進数表記にしたものを用意します。

これに対してBinaryAnd関数を適用してみましょう

BinaryAnd([n], [m])

結果は以下のようになります。

結果をわかりやすくするため、こちらの二進数表記も取得しています。

BinaryOr

続いてのBinaryOr関数はORをとる演算です。 先ほどのBinaryAndと同じデータに対して使ってみましょう。

BinaryOr([n], [m])

結果は以下のようになります。

BinaryXOr

BinaryXOr関数はXORをとる演算です。 こちらも同じデータに対して使ってみましょう。

BinaryXOr([n], [m])

結果は以下のようになります。

BinaryNot

さて、ここからは複数の値を使ったものではなく、単一の値の計算になります。 まずはNOT演算を行うBinaryNotです。

利用するデータは先ほどまで使っていたもののうちnのみとなります。

これに対してBinaryNotを利用します。

BinaryNot([n])

結果は以下のようになります。

二進数にした結果が長くなっていますが、これは利用している型の桁数に合わせているためです。 画像中ではInt16にしているため、16*8桁表示されています。

ShiftLeft/ShiftRight

これらはビットシフト演算を行います。 同じデータにShiftLeft関数を使ってみましょう。

ShiftLeft([n], 3)

第2引数はシフトするビット数を指定します。 結果は以下のようになります。

ShiftRightも同様に右シフトを行う動きをします。

おわりに

今回は、AlteryxのFormula式におけるビット演算の関数について書きました。 使いこなすにはコンピュータ上での数値の表現方法を理解する必要がありますが、知っていると便利に使える場面もあります。

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400