【问题标题】:Excel formula to get specific data that according to another columnExcel公式获取根据另一列的特定数据
【发布时间】:2018-10-16 07:59:48
【问题描述】:

我有一个包含各种工作表的电子表格,每个工作表都包含不同类型的订单,包括项目、描述、数量等。

ITEM    DESCRIPTION    QTY
Apple    ...            1
Orange   ...            4

我想得到一个能够从每张纸上找出物品总数的公式。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    如果您想在单个单元格中执行此操作,恐怕没有 VBA 的唯一方法是手动搜索所有页面:

    = SUMIF(Page1!A:A,"=ItemName",Page1!C:C)+ SUMIF(Page2!A:A,"=ItemName",Page2!C:C)+ ...

    其他解决方案将涉及您创建自己的个人 vba 函数或在每个工作表中添加新单元格,我不确定这是否在可能的范围内。

    【讨论】:

    • 感谢您的代码,它可以工作,但可以更改它以便您只更改一个“ItemName”而不是逐个更改并更改?
    • 只需将名称替换为写入名称的字段,例如 D4 : = SUMIF(Page1!A:A,"="&D4,Page1!C:C) ...跨度>
    • 不,我的意思是,例如 = SUMIF(Page1!A:A,"=ItemName",Page1!C:C)+ SUMIF(Page2!A:A,"=ItemName",Page2 !C:C)+..... 使用此代码,我将不得不浏览每一页并更改“itemName”。我想要一个只更改一个“itemName”并从每一页获取数据的代码。你可以使用范围之类的东西吗?例如 =SUMIF(page1:page5!A:A, ="ItemName", C:C)?
    【解决方案2】:

    如果所有带有“数据”的工作表格式相同,您可以通过以下操作节省时间和维护:

    创建一个名为 start 的工作表,它位于所有“数据”工作表之前。这张纸应该是空白的(除了一些文字说“这张纸是故意空白的”)

    创建一个名为 end 的工作表,它位于所有“数据”工作表之后。

    然后在您的摘要表中,您可以执行=SUM(start:end!C:C)(我假设您的数量在上面示例中的 C 列中)。

    如果您使用这种方法,您可以轻松地在 startend 之间添加工作表;公式不需要重写

    根据@l3echod 在另一个答案中的评论,如果您想要每件商品的总数量,您还可以在 SUMIF 和 SUMIFS 公式中使用此模式:

    =SUMIF(start:end!$A:$A,$A2,start:end!$C:$C)

    这假设有问题的项目在单元格 A2 中。请注意,根据您拥有的数据量,这可能是一个计算缓慢的公式。

    【讨论】:

      猜你喜欢
      • 2016-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 2021-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多