Excel for Mac でデータをインポートおよび整形する (Power Query)

適用先
Excel for Microsoft 365 for Mac

Excel for the Mac には Power Query (Get & Transform とも呼ばれます) テクノロジが組み込まれており、データ ソースのインポート、更新、認証、Power Query データ ソースの管理、資格情報のクリア、ファイル ベースのデータ ソースの場所の変更、要件に合ったテーブルへのデータの整形の際により優れた機能を提供します。 VBA を使用して Power Query のクエリを作成することもできます。

データ ソースのインポート

SQL Server データベース データ ソースは Insider ベータでのみインポートできます。

Power Query を使用して、Excel ブック、テキスト/CSV、XML、JSON、SQL Server データベース、SharePoint Online リスト、OData、空のテーブル、空のクエリなど、さまざまなデータ ソースから Excel にデータをインポートできます。

  1. [データ>データの取得] を選択します

    PQ Mac データの取り出し (Power Query).png

  2. 目的のデータ ソースを選択するには、[データの取得 (Power Query)] を選択します。

  3. [ データ ソースの選択 ] ダイアログ ボックスで、使用可能なデータ ソースのいずれかを選択します。

    ダイアログ ボックスで選択するデータ ソースの例

  4. データ ソースに接続します。 各データ ソースに接続する方法の詳細については、「データ ソース からデータをインポートする」を参照してください。

  5. インポートするデータを選択します。

  6. [読み込み] ボタンをクリックして、データを 読み込 みます。

結果

インポートされたデータが新しいシートに表示されます。

クエリの一般的な結果

次のステップ

Power Query エディターを使用してデータを整形および 変換するには、[データの変換] 選択します。 詳細については、「Power Query エディターを使用してデータを整形する」を参照してください。

Power Query エディターを使用してデータを整形する

この機能は、バージョン 16.69 (23010700) 以降の Excel for Mac を実行していて、Microsoft 365 サブスクリプションをご利用の方が一般的に利用できます。 Microsoft 365 サブスクライバーの場合は、 最新バージョンの Office があることを確認してください。

手順

  1. [データ>データの取得 (Power Query) を選択します

  2. クエリ エディターを開くには、[Power Query エディターの起動] を選択します。

    PQ Mac Editor.png

    ヒント

    [データの取得 (Power Query)] を選択し、データ ソースを選択し、[次へ] をクリックして、クエリ エディターにアクセスすることもできます。

  3. Excel for Windows の場合と同様に、クエリ エディターを使用してデータを整形および変換します。

    Power Query エディター

    詳細については、「Power Query for Excel のヘルプ」を参照してください。

  4. 完了したら、[ホーム] >[閉じる] & [読み込み] を選択します。

結果

新しくインポートされたデータが新しいシートに表示されます。

クエリの一般的な結果

データ ソースの更新

SharePoint ファイル、SharePoint リスト、SharePoint フォルダー、OData、テキスト/CSV ファイル、Excel ブック (.xlsx)、XML ファイルと JSON ファイル、ローカル テーブルと範囲、Microsoft SQL Server データベース、フォルダーなど、次のデータ ソースを更新できます。

初回の更新

ブック クエリでファイル ベースのデータ ソースを初めて更新する場合は、ファイル パスの更新が必要になる場合があります。

  1. [データ][データの取得] の横にある矢印、[データ ソースの設定] の順に選択します。 [データ ソースの設定] ダイアログ ボックスが表示されます。
  2. 接続を選択し、[ファイル パスの変更] を選択します。
  3. [ ファイル パス ] ダイアログ ボックスで、新しい場所を選択し、[ データの取得] を選択します。
  4. [Close] (閉じる) を選択します。

その後の更新

更新するには:

  • ブック内のすべてのデータ ソースで、[ データ>Refresh All] を選択します。
  • 特定のデータ ソースで、シート上のクエリ テーブルを右クリックして、[更新] を選択します。
  • ピボットテーブルで、ピボットテーブル内のセルを選択し、[ピボットテーブルの分析]、[参照データ] の順に選択>。

資格情報の入力とクリア

SharePoint、SQL Server、OData、またはアクセス許可が必要なその他のデータ ソースに初めてアクセスするときは、適切な資格情報を提供する必要があります。 資格情報をクリアして新しい資格情報を入力することもできます。

資格情報の入力

クエリを初めて更新すると、ログインを求められる場合があります。 認証方法を選択し、ログイン資格情報を指定してデータ ソースに接続し、更新を続行します。

ログインが必要な場合は、[ 資格情報の入力 ] ダイアログ ボックスが表示されます。

次に例を示します。

  • SharePoint 資格情報:

    Mac での SharePoint 資格情報プロンプト

  • SQL Server 資格情報:

    サーバー、データベース、および資格情報を入力する SQL Server ダイアログ ボックス

資格情報のクリア

  1. [ Data>Get Data>Data Source Settings] を選択します
  2. [データ ソースの設定] ダイアログ ボックスで、目的の接続を選択します。
  3. 下部にある [ アクセス許可のクリア] を選択します。
  4. これが目的であることを確認し、[削除] を選択します。

Power Query VBA コードの作成および転送

Excel for Mac では Power Query エディターでの作成は利用できませんが、VBA では Power Query の作成がサポートされています。 ファイル内の VBA コード モジュールの Excel for Windows から Excel for Mac への転送は、2 段階の処理で行われます。 このセクションの最後にサンプル プログラムが用意されています。

手順 1: Excel for Windows

  1. Excel Windows では、VBA を使用してクエリを作成します。 Excel のオブジェクト モデルで次のエンティティを使用する VBA コードは、query オブジェクト、WorkbookQuery オブジェクト、Workbook.Queries プロパティのExcel for Macでも機能します。詳細については、「Excel VBA リファレンス」を参照してください。

  2. Excel で、Alt + F11 キーを押して、Visual Basic エディターが開いていることを確認します。

  3. モジュールを右クリックして、[エクスポート ファイル] を選択します。 [エクスポート] ダイアログ ボックスが表示されます。

  4. ファイル名を入力し、ファイル拡張子が .bas であることを確認してから、[保存] を選択します。

  5. VBA ファイルをオンライン サービスにアップロードして、Mac からファイルにアクセスできるようにします。

    Microsoft OneDrive を使用できます。 詳細については、「Mac OS X の OneDrive とファイルを同期する」を参照してください。

手順 2: Excel for Mac

  1. VBA ファイルをローカル ファイルにダウンロードします。この VBA ファイルは "手順 1: Excel for Windows" で保存し、オンライン サービスにアップロードしたものです。
  2. Excel for Macで、[ツール>Macro>Visual Basic Editor] を選択します。 [Visual Basic エディター] ウィンドウが表示されます。
  3. [プロジェクト] ウィンドウでオブジェクトを右クリックし、[ファイルのインポート] を選択します。 [ファイルのインポート] ダイアログ ボックスが表示されます。
  4. VBA ファイルを見つけて、[開く] を選択します。

サンプル コード

適応して使用できる基本的なコードを次に示します。 これは、1 から 100 までの値を持つリストを作成するサンプル クエリです。


Sub CreateSampleList()
  ActiveWorkbook.Queries.Add Name:="SampleList", Formula:= _
    "let" & vbCr & vbLf & _
      "Source = {1..100}," & vbCr & vbLf & _
      "ConvertedToTable = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error)," & vbCr & vbLf & _
      "RenamedColumns = Table.RenameColumns(ConvertedToTable,{{""Column1"", ""ListValues""}})" & vbCr & vbLf & _
    "in" & vbCr & vbLf & _
      "RenamedColumns"
  ActiveWorkbook.Worksheets.Add
  With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
    "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=SampleList;Extended Properties=""""" _
    , Destination:=Range("$A$1")).QueryTable
    .CommandType = xlCmdSql
    .CommandText = Array("SELECT * FROM [SampleList]")
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .PreserveColumnInfo = True
    .ListObject.DisplayName = "SampleList"
    .Refresh BackgroundQuery:=False
  End With
End Sub

関連項目

Power Query for Excel のヘルプ

Excel for Mac 互換 ODBC ドライバー

ピボットテーブルを作成してワークシート データを分析する