Power Queryで「ログイン名:パスワード」をBase64エンコードの事例です。Power Query M 言語のBinary.FromText関数では実現できず、Binary.ToText関数とText.ToBinary関数を組み合わせる必要があります。
内容:
なお、確認のExcelは「Microsoft® Excel® for Microsoft 365 MSO」(バージョン2406)です。
アウトプットイメージ
「列1」フィールドについて、カスタム列に次の数式を入力し、Base64エンコードをしている。
Binary.ToText(Text.ToBinary([列1],TextEncoding.Utf8),BinaryEncoding.Base64)
事例の説明
数式内側のText.ToBinaryについて
Text.ToBinaryは、
指定された
encoding
を使用して、指定されたテキスト値 (text
) をバイナリ値にエンコードします
ということで、事例の数式の内側は「列1」フィールドをUtf8でエンコードしています。
エンコードの種類は、以下です。
数式外側のBinary.ToTextについて
Binary.ToTextは、
数値のバイナリ リスト binary をテキスト値に変換した結果を返します。 必要に応じて、生成されるテキスト値に使用されるエンコードを示すために、encoding を指定することができます。encoding には次の BinaryEncoding 値を使用できます。
BinaryEncoding.Base64: Base 64 エンコード
BinaryEncoding.Hex: 16 進数エンコード
ということで、これでバイナリ値からBase 64 エンコードをしています。
以上で、変換ができました。
(注意点)Binary.FromTextでは変換できなかった
Binary.FromTextは、
テキスト値 text をバイナリ (number のリスト) に変換した結果を返します。 encoding は、テキスト値で使用されるエンコードを示すために指定できます。 次の BinaryEncoding 値を encoding に使用できます。
とあったが、テキスト値は”テキスト形式で表示されたバイナリ値”ということみたい。よって、Binary.ToText関数とText.ToBinary関数を組み合わせる必要がありました。
以上、PowerQueryで、「ログイン名:パスワード」をBase64エンコードの事例でした。