谷歌电子表格 - 将过滤器与索引(匹配)相结合.有点



我一直在为一个定期更新的游戏保留一些东西的日志。在大多数情况下,我一直在手动处理很多,随着时间的推移,我慢慢地添加了一些自动化来减轻手动输入的负担(并减少数据输入错误的机会)。

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

此表现在如何设置:

  1. 我在添加新内容时手动输入"项目名称">
  2. 添加新内容时,我手动输入"武器类型">
  3. 当添加新内容和返回时,我手动输入"日期">

第一步,我可以通过这样的东西相对容易地自动化:

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

如果我在"DCAT成本历史"中添加另一列,第二步同样可以自动化! 表,进一步指定了该项目。

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

现在的工作方式是我使用脚本从开发人员组合在一起的.php中获取新库存,这些信息进入"测试表,请忽略"!在那之后,"杜卡特成本历史"!工作表将自动更新所有现有项目,尽管我仍然必须手动将新项目添加到列表底部(问题不大)。

我想要的是一个公式,它可以查看一个范围,然后从不同的范围返回。 例如:假设我想查找"Mara Detron" - 我知道它出现在 7 个不同的日期,通过在"DCAT 成本历史"中简单地使用=COUNTA(F2:2)! 表。

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

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

其中_将是相应的行值。

不过,这大约是我在自动化它们方面所达到的。有没有办法让公式自动匹配相应的行?

您可以将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 行。 :)

最新更新