【问题标题】:How can I sum values from range using two criterias both with ranges using OR condition in Google Sheets如何使用两个条件对范围中的值求和,同时在 Google 表格中使用 OR 条件
【发布时间】:2020-03-30 22:28:12
【问题描述】:

示例: https://docs.google.com/spreadsheets/d/1rM7gTI3yrOrtndFLlBJuwvR8AFN4ViZ08brGFfrcg40/edit?usp=sharing

我正在写下我的工作时间。
在 A 列中我有所有日期,在 B 列中我有所有日期的名称,在 C 列中我有值(小时数)。
在 E 列中,我有我想要总结的特定日期(假期)。在 F 列中,我有我想要总结的特定日期(周末)。

问题:单元格 G2 中应该包含什么来汇总所有假期和所有周末但如果它们重叠,则只有其中一个

【问题讨论】:

    标签: google-sheets sum match google-sheets-formula array-formulas


    【解决方案1】:

    尝试:

    =INDEX(SUM(INDIRECT(
     ADDRESS(IFERROR(MATCH(E2&F2; A$2:A&B$2:B; 0)+ROW(B$2)-1; 2); COLUMN(C2))&":"&
     ADDRESS(IFERROR(MATCH(E3&F3; A$2:A&B$2:B; 0)+ROW(B$2)-1; ROWS(C:C)); COLUMN(C2)))))
    

    请注意,E 列中的日期需要与 F 列中的正确日期配对

    只做日期使用:

    =INDEX(SUM(INDIRECT(
     ADDRESS(IFERROR(MATCH(E2; A$2:A; 0)+ROW(B$2)-1; 2); COLUMN(C2))&":"&
     ADDRESS(IFERROR(MATCH(E3; A$2:A; 0)+ROW(B$2)-1; ROWS(C:C)); COLUMN(C2)))))
    

    缩短:

    =INDEX(SUM(INDIRECT(
     ADDRESS(IFERROR(MATCH(E2; A$2:A; 0)+1; 2); 3)&":"&
     ADDRESS(IFERROR(MATCH(E3; A$2:A; 0)+1; ROWS(C:C)); 3))))
    

    【讨论】:

      【解决方案2】:

      我终于想出了一个相当优雅的方法,尽管是针对我的具体问题:
      SUMPRODUCT(SUMIF(WEEKDAY(A2:A; 2); ">=6"; C2:C)-SUMPRODUCT((C2:C)*(WEEKDAY(A2:A; 2)>=6)*(ISNUMBER(MATCH(A2:A;E2:E;0)))))+SUMPRODUCT(SUMIF(A2:A; E2:E; C2:C))

      这会将数字大于 6 的天数(我的国家/地区的星期六和星期日)的小时数相加,并从中减去同时是周末和范围(节假日)的天数的小时数总和。这样我就可以得到没有假期的周末,然后只需添加假期的 sumproduct。

      如果你想使用它,你可能需要调整周末的条件,这应该不难。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多