Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA中具有多个条件的行之和_Excel_Vba - Fatal编程技术网

Excel VBA中具有多个条件的行之和

Excel VBA中具有多个条件的行之和,excel,vba,Excel,Vba,我需要能够根据特定的列条件对行进行汇总。 有一个包含以下列的表: ID# (row #) Part Customer Job QTY Dept Pass/Fail 其中,ID#可能是唯一的唯一值 需要从表中获得以下信息: 需要归还所有工作 需要返回所有新作业,即所有作业减去任何重复项(即,每个唯一零件客户作业数量部门的第一个条目(即,所有5个值相等) 所有重复作业,应为所有ID#-部分客户作业数量部门通行证 例如: 1-Part;Customer;Job; QTY; Dept; F

我需要能够根据特定的列条件对行进行汇总。 有一个包含以下列的表:

ID# (row #) 
Part
Customer 
Job 
QTY 
Dept 
Pass/Fail 
其中,
ID#
可能是唯一的唯一值

需要从表中获得以下信息:

  • 需要归还所有工作
  • 需要返回所有新作业,即所有作业减去任何重复项(即,每个唯一零件客户作业数量部门的第一个条目(即,所有5个值相等)
  • 所有重复作业,应为所有ID#-部分客户作业数量部门通行证
  • 例如:

    1-Part;Customer;Job; QTY; Dept; Fail
    2-Part; Customer; Job; QTY; Dept; Pass
    
    其中,零件客户作业数量部门相等,1个失败,2个通过

    1和2很容易,但3有点棘手

    我应该只找到在通过之前包含失败的
    ID#
    (行)吗

    可以在单个循环中完成吗

    当我在这里时,#2可能也很棘手。有没有简单的方法来求和,没有重复

    任何帮助都将不胜感激

    如果需要其他信息,请告诉我

    下面的示例数据应返回:

    10 for All
    
    8 for New
    
    2 for Repeats
    
    做这个示例让我想到,如果只是从全部中减去New,将返回所有重复


    我不确定您是否真的需要使用VBA,因为这个问题似乎可以通过默认函数解决

    这里的关键问题是识别唯一键
    零件客户作业数量部门的所有重复记录。请注意,您实际上不需要注意
    ID
    通过/失败
    ,因为这些值不会影响您的计算

    知道唯一密钥后,可以通过以下步骤进行求解:

  • 将一个新列连接起来以生成唯一键。
    (F1)=A1&B1&C1&D1&E1
  • 对于每一行,计算列中唯一键的外观。
    (G1)=countif(F:F,F1)
  • 当计数大于1时,您可以确定记录正在复制,这意味着数据中有多行使用相同的唯一键。
    =countif(G:G,“>1”)
  • 一旦你在每一行上都有了“是/否”的答案,你只需对“是”进行计数就可以得到重复计数,从而根据你的定义得到新的工作

  • 这也可以通过相同的逻辑在VBA中实现。

    我不确定您是否真的需要使用VBA,因为这个问题似乎可以通过默认函数解决

    这里的关键问题是识别唯一键
    零件客户作业数量部门的所有重复记录。请注意,您实际上不需要注意
    ID
    通过/失败
    ,因为这些值不会影响您的计算

    知道唯一密钥后,可以通过以下步骤进行求解:

  • 将一个新列连接起来以生成唯一键。
    (F1)=A1&B1&C1&D1&E1
  • 对于每一行,计算列中唯一键的外观。
    (G1)=countif(F:F,F1)
  • 当计数大于1时,您可以确定记录正在复制,这意味着数据中有多行使用相同的唯一键。
    =countif(G:G,“>1”)
  • 一旦你在每一行上都有了“是/否”的答案,你只需对“是”进行计数就可以得到重复计数,从而根据你的定义得到新的工作

  • 这也可以通过相同的逻辑在VBA中实现。

    如果报告需要每周和每月自动运行,那么使用VBA路线是否正确?因此,在检查副本时,不需要检查通过/失败?这是非常灵活的逻辑!谢谢!这取决于您的目标是如何“自动化”…就像这是不同的做法一样“定期手动触发”和“系统计划触发”。IMO Excel VBA不适合前者,因为通常需要打开文件来调用函数。最有可能的是“定期手动触发”,而不是“系统计划触发”(尽管可以考虑后者)。目标是在每周或每月结束时(即源文件关闭时)运行当前每周或每月报告。该过程主要是手动的,如果可能的话,我希望通过一个按钮完成所有操作。打开文件以开始该过程是可以的,但最好避免任何其他手动步骤。您认为这需要多个按钮(调用)?-谢谢!这真的取决于您想要的输出格式。请参阅(即最懒的)在这种方法中,我将像准备好所有计算列一样,通过粘贴填充输入列,然后复制输出单元格。在这种方法中,您甚至不需要按钮,因为所有计算更新单元格都是由Excel自动触发的。如果是一个需要自动运行一周的报告,那么使用VBA路线是否正确nd每月一次?所以在检查副本时,没有必要检查通过/失败?这是非常巧妙的逻辑!谢谢!这取决于你的目标是如何“自动化”…就像“定期手动触发”和“由系统计划触发”不同“.IMO Excel VBA不适合前者,因为通常需要打开文件才能调用该函数。它很可能是“以定期方式手动触发”而不是“由系统计划触发”(尽管可以考虑后者)。目标是在每周或每月结束时运行当前周报或月报(即,当源文件关闭时)。该过程主要是手动的,如果可能的话,我希望通过一个按钮来完成所有事情。打开文件以启动该过程是可以的,但最好避免任何其他手动步骤。您认为这将需要不止一个按钮(调用)吗?-谢谢!这取决于您想要的输出格式。对于最简单(即最懒)的方法,我将准备好所有计算列,通过粘贴填充输入列,然后复制