Excel PowerQuery:如何创建一个包含其他列的值之和的列?

时间:2019-08-14 17:47:06

标签: excel powerquery

我有:

order    amount
105      2€
105      4€
105      5.50€
108      1€
108      1€
124      25€

使用Excel powerquery,我要创建列“ total-order”。期望的结果是:

order    amount     total-order
105      2€         11.50€
105      4€         11.50€
105      5.50€      11.50€ 
108      1€         2.00€
108      1€         2.00€ 
124      25€        25.00€

“总订单”列是每个“订单”的“金额”行的总和。

我想保留所有行。因此,结果无效:

order   total-order
105     11.50€
108     2.00€
124     25.00€

最后我知道如何使用“分组依据”选项

谢谢!

3 个答案:

答案 0 :(得分:1)

如果数据在表1范围内,则为完整代码:

using System;
using System.Net.Sockets;
using System.Threading;
using System.Threading.Tasks;

namespace TcpClientCancellation
{
    public static class Extensions
    {
        public static async Task ConnectAsync(this TcpClient tcpClient, string host, int port, CancellationToken cancellationToken) {
            if (tcpClient == null) {
                throw new ArgumentNullException(nameof(tcpClient));
            }

            cancellationToken.ThrowIfCancellationRequested();

            using (cancellationToken.Register(() => tcpClient.Close())) {
                try {
                    cancellationToken.ThrowIfCancellationRequested();

                    await tcpClient.ConnectAsync(host, port).ConfigureAwait(false);
                } catch (NullReferenceException) when (cancellationToken.IsCancellationRequested) {
                    cancellationToken.ThrowIfCancellationRequested();
                }
            }
        }
    }
}

答案 1 :(得分:1)

您可以使用PowerQuery UI执行此操作。从您的数据开始:

Original data

将范围定义为新表格。

  1. PowerQuery->从表/范围
  2. 选择您的数据。
  3. 给查询起一个名字-假设SourceData
  4. 首页->关闭并加载

创建一个新的查询以生成组和总计。

  1. 选择原始数据,包括标题。
  2. 功率查询->从表/范围
  3. 分组依据如下:

Grouped data + total

将源数据合并到分组查询中。

  1. 合并查询
  2. 从下拉列表中选择SourceData作为第二个表格。
  3. Join Kind 下拉菜单中选择右外
  4. 在两个表中选择order列。

Merge Query dialog

当前,您仍然具有分组的行。但是,如果单击Table列中的SourceData条目,则会看到与此行相关的原始记录。

现在,将相关数据中的每一行扩展到主数据(组)中的一行。

  1. 单击SourceData列标题右侧的按钮:

    Button to expand sub-tables

  2. 隐藏订单列:

    Table Expansion dialog

    并按OK

最终结果:

enter image description here

答案 2 :(得分:0)

使用以下功能。

=IF(A1=A2,SUMIF(A:A,A2,B:B),SUMIF(A:A,A3,B:B))

A列具有顺序,B列具有数量。 (带有标题)