SUMIF 未搜索整个范围的条件

问题描述 投票:0回答:1

我试图让 SUMIF 搜索一行中的条件(在本例中为文本名称),然后使用单独单元格中的总和填充另一个第二个工作表,但由于某种原因,它只搜索该行中的第一个单元格对于这个标准。

我一生都无法弄清楚为什么会这样。

这是表格形式的超级简化版本:

使用以下公式(示例适用于 Sheet2 上的单元格 B2):

=SUMIF(Sheet1!C1:D1, B1, Sheet1!E1)

表1

A B C D E
1/14 3 拉里 拉斐尔 1.5
1/15 1 多纳泰罗 拉里 0.5

Sheet2 上的初始输出:

A B C D
日期 拉里 拉斐尔 多纳泰罗
1/14 1.5 0 0
1/15 0 0 0

Sheet2 上的预期输出

A B C D
日期 拉里 拉斐尔 多纳泰罗
1/14 1.5 1.5 0
1/15 0.5 0 0.5

我想要发生的是,如果某人的名字出现在 Sheet1 上的一行中,那么 E 列中的值将填充到 Sheet2 上相应的单元格中 — — 在该人的名字下。

不幸的是,Sheet2 中的实际结果似乎是正在搜索的范围只是列中的第一个单元格,因此,如果某人的名字首先列在第一张表的行中,则数据只会填充在某人的名字下。

如何修改这个公式来解决这个问题?

if-statement google-sheets google-sheets-formula
1个回答
0
投票

你可以试试这个公式:

=let(a,BYCOL(B1:D1, LAMBDA(r, IF(REGEXMATCH(JOIN(",",CHOOSEROWS(Sheet1!A1:E2,MATCH(A2,Sheet1!A1:A2))),r), CHOOSECOLS(CHOOSEROWS(Sheet1!A1:E2,MATCH(A2,Sheet1!A1:A2)),-1),0))),b, BYCOL(B1:D1, LAMBDA(r, IF(REGEXMATCH(JOIN(",",CHOOSEROWS(Sheet1!A1:E2,MATCH(A3,Sheet1!A1:A2))),r), CHOOSECOLS(CHOOSEROWS(Sheet1!A1:E2,MATCH(A3,Sheet1!A1:A2)),-1),0))),VSTACK(a,b))

预期输出:

A B C D
日期 拉里 拉斐尔 多纳泰罗
1/14 1.5 1.5 0
1/15 0.5 0 0.5
© www.soinside.com 2019 - 2024. All rights reserved.