Google Spreadsheets - 将过滤器与索引(匹配)相结合)......排序

时间:2017-12-04 22:06:24

标签: google-sheets

我一直在记录一些定期更新的游戏。在大多数情况下,我一直在手动和慢慢地处理它,我会添加一些自动化以减少手动输入的负担(并减少数据输入错误的机会)。

具体来说,我正在尝试找到一种方法来简化以下表格中的流程:https://docs.google.com/spreadsheets/d/1nbP0VgXjHozZikZFejERfw_dkilj26pyfhK29uaPAIQ/edit#gid=688163851

现在如何设置此工作表:

  1. 我在添加新内容时手动输入“项目名称”
  2. 我在添加新内容时手动输入“武器类型”
  3. 当添加新内容和返回时,我手动输入“日期”
  4. 第一步,我可以通过以下方式相对轻松地实现自动化:

    =FILTER('DUCAT COST HISTORY'!A2:A,'DUCAT COST HISTORY'!B2:B="Weapon")
    

    如果我在'DUCAT COST HISTORY'中添加另一栏,第二步也可以自动化!进一步指定该项目的表格。

    我遇到的问题是如何在此特定工作表上自动输入日期。以及与此类似的其他工作表。

    现在的工作方式是我使用一个脚本从开发人员放在一起的.php中获取新的库存,这些信息在“TEST SHEET,PLEASE IGNORE”中!之后,'DUCAT COST HISTORY'!工作表将自动更新所有现有项目,但我仍然需要手动将新项目添加到列表的底部(这不是一个大问题)。

    我想要的是一个公式,它可以查看范围,然后从不同的范围返回。例如:假设我想查找“Mara Detron” - 我知道它通过在'DUCAT COST HISTORY'中简单使用=COUNTA(F2:2)出现在7个不同的日期!片材。

    当我尝试使用INDEX(MATCH())时,它只会返回指定单元格的值,所以我不能用它来检查整行。我能想出的最佳解决方案是手动将项目与其各自的行匹配,然后像这样运行过滤器:

    =FILTER('DUCAT COST HISTORY'!F1:1,NOT(ISBLANK('DUCAT COST HISTORY'!F__:__)))`
    

    _将是相应的行值。

    尽管如此,这与我实现自动化有关。有没有办法让公式自动匹配相应的行?

1 个答案:

答案 0 :(得分:0)

您可以将OFFSETMATCH一起使用,以获取过滤条件的右行:

=
FILTER(
  'DUCAT COST HISTORY'!$I$1:$1,
  NOT(
    ISBLANK(
      OFFSET(
        'DUCAT COST HISTORY'!$I$3:$3,
        MATCH(A2, 'DUCAT COST HISTORY'!$A$3:$A, 0) - 1,
        0,
        1
      )
    )
  )
)

它进入单元格C2中,您只需向下传播即可。要容忍空白单元格,您可以添加IF

=
IF(
  ISBLANK(A2),
  ,
  FILTER(
    'DUCAT COST HISTORY'!$I$1:$1,
    NOT(
      ISBLANK(
        OFFSET(
          'DUCAT COST HISTORY'!$I$3:$3,
          MATCH(A2, 'DUCAT COST HISTORY'!$A$3:$A, 0) - 1,
          0,
          1
        )
      )
    )
  )
)

对于数据输入错误的可能性,您完全正确:对于 Prisma Skana ,您使用的是第22行而不是第32行。 :)

相关问题