Sub 売上の集計()
    Dim mCode As Variant
    Dim formulaText As String
    Dim ws As Worksheet
    Dim lo As ListObject

    Set ws = ThisWorkbook.Worksheets("Sheet1")

    mCode = Array( _
        "let", _
        "ソース = Excel.CurrentWorkbook(){[Name=""T_売上""]}[Content],", _
        "集計された行 = Table.Group(ソース, {""担当者""}, {", _
        "{""売上合計"", each List.Sum([売上金額]), Int64.Type},", _
        "{""受注件数"", each Table.RowCount(_), Int64.Type},", _
        "{""売上平均"", each List.Average([売上金額]), type number},", _
        "{""最大売上"", each List.Max([売上金額]), Int64.Type},", _
        "{""最小売上"", each List.Min([売上金額]), Int64.Type}", _
        "})", _
        "in", _
        "集計された行" _
    )

    formulaText = Join(mCode, vbCrLf)

    ThisWorkbook.Queries.Add _
        Name:="売上の集計", _
        Formula:=formulaText

    Set lo = ws.ListObjects.Add( _
        SourceType:=0, _
        Source:="OLEDB;Provider=Microsoft.Mashup.OleDb.1;" & _
                "Data Source=$Workbook$;" & _
                "Location=売上の集計;" & _
                "Extended Properties=""""", _
        Destination:=ws.Range("G1") _
    )

    lo.Name = "T_売上の集計"

    With lo.QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [売上の集計]")
        .Refresh BackgroundQuery:=False
    End With

    ThisWorkbook.Queries("売上の集計").Delete

    lo.ListColumns("売上合計").DataBodyRange.NumberFormat = "#,##0"
    lo.ListColumns("受注件数").DataBodyRange.NumberFormat = "#,##0"
    lo.ListColumns("売上平均").DataBodyRange.NumberFormat = "#,##0"
    lo.ListColumns("最大売上").DataBodyRange.NumberFormat = "#,##0"
    lo.ListColumns("最小売上").DataBodyRange.NumberFormat = "#,##0"
End Sub