在相邻列中添加具有相同值的所有值?

时间:2017-06-01 22:08:31

标签: vba excel-vba excel

我有一个客户订单列表,其中包含datecustomer IDamount purchased

这是它的样子:

Customer Order Worksheet

我想将所有这些合并到每张客户购买总金额的新表中。我怎么做到这一点?

我已经考虑过检查每一行并检查它是现有客户还是新客户并将其添加到阵列中。但这似乎并不高效。

2 个答案:

答案 0 :(得分:0)

您可以使用简单的Excel函数执行此操作。

enter image description here

=SUMIFS(C$2:C3,$B$2:B3,B3)将此公式复制到第一条记录的相邻行,然后将其向下拖动。不要使用数组的锁定起始单元格和数组的动态结束单元格。




enter image description here

=SUM((C3:C32)*(B3:B32=G5)*(A3:A32>=G3)*(A3:A32<=G4))复制此公式并将其作为数组公式输入。按住Shift + Ctrl然后按Enter键。

您现在可以相应地更改日期和CustId。

答案 1 :(得分:0)

根据@ ScottCraner的建议,数据透视表将根据以下代码以您希望的格式提供数据。如果您没有“Sheet2&#39;”,请添加并运行代码。源数据在&#34; Sheet1&#34;从问题中的图表开始,从第3行开始。如果你想进行实验,我已经包含了一个宏来删除数据透视表。

public void start(Stage primaryStage) throws IOException{
    //make primaryStage utility
    primaryStage.initStyle(StageStyle.UTILITY);
    primaryStage.setOpacity(0);

    Stage secondaryStage = new Stage();
    secondaryStage.initOwner(primaryStage);
    //make secondaryStage transparent
    secondaryStage.initStyle(StageStyle.TRANSPARENT);


    //load ui via FXMLLoader
    FXMLLoader loader = new FXMLLoader(getClass().getResource("/ui.fxml"));
    AnchorPane pane = loader.load();//example with anchor pane

    Scene scene = new Scene(pane,400,400); //example width and height
    scene.setFill(Color.TRANSPARENT); //make scene transparent as well

    secondaryStage.setScene(scene);

    primaryStage.show();
    secondaryStage.show();
}