引用其他列中的单元格

引用其他列中的单元格

假设我在第 6 列,第 10 行。

第 4 列数据每个单元格一个字母,如下所示:a、b、a、c、d、e、b、c、f、d

我想要一个公式来查找第 4 列、第 10 行的值...得到 d。

然后检查先前的单元格是否包含 d ...在本例中是的,在第 5 行。

然后转到第 2 列、第 10 行并获取那里的值...比如说 15。

然后转到第 2 列、第 5 行并获取那里的值...比如说 5。

然后进行计算(15-5)并在第 6 列、第 10 行插入值 10。

这在 Excel 中可以实现吗?

如果能做到的话就太好了。

谢谢。

答案1

对于该解决方案,添加了一个虚拟列(G:G)。

公式:
G1包含=B1将值复制到 D 列的右侧(对于vlookup)。将其复制到G2:G10

F1包含=B1-VLOOKUP(D1,D:G,4,FALSE)。将其复制到F2:F10。它从 B1 中减去第一个匹配行的值。
(注意:4表示 G 列是范围内的第 4 列D:G

   |   A   |   B   |   C   |   D   |   E   |   F   |   G   
---+-------+-------+-------+-------+-------+-------+-------
 1 |       |       |       |   a   |       |     0 |     0 
 2 |       |       |       |   b   |       |     0 |     0 
 3 |       |       |       |   a   |       |     0 |     0 
 4 |       |       |       |   c   |       |     0 |     0 
 5 |       |     5 |       |   d   |       |     0 |     5 
 6 |       |       |       |   e   |       |     0 |     0 
 7 |       |       |       |   b   |       |     0 |     0 
 8 |       |       |       |   c   |       |     0 |     0 
 9 |       |       |       |   f   |       |     0 |     0 
10 |       |    15 |       |   d   |       |    10 |    15 

上述方法可以计算Value of current row - Value of the FIRST MATCHING ROW无论是 1 个“d”,2 个“d”,3 个“d”或更多。

正如@hyperslug所说,请澄清

  • 如果有 3 个“d”怎么办?
  • 如果只有 1 个“d”怎么办?

答案2

因此,只是想澄清一下。

对于任何具有特定值的行执行数学计算并在行末尾输出答案?

每个单元格中是否只有两个相同的字母,并且总是最大单元格编号减去最小单元格编号。

如果是这样,那么它应该很容易,只要您可以先按字母排序,然后按索引排序(按索引排序只需要将初始 1,2,3...n+1 作为列。这样你就会有类似的东西。a,a,b,b,c,c,d,d,e,e,f,f 我对 excel 的语法不是 100% 了解,但希望这能给你 10 的入门知识。

答案3

我会将问题拆分,并使用一些额外的列来表示中间步骤,就像您在解释中所做的那样。然后,您可以隐藏中间计算,或者在必要时将它们合并为一个复杂的大公式。

因此,从第 7 列开始,远离您想要答案的位置,并且假设您只想处理第一次出现的情况,G10:

=匹配(D10,D$1:D9,0)

H10:

=OFFSET(B10,G10-ROW(G10),0)

然后F10就可以:

=B10-H10

把它们放在一起可以得到一个公式:

=B10-OFFSET(B10,MATCH(D10,D$1:D9,0)-ROW(B10),0)

如果您不想出现错误,您可以将所有内容包装在一个IFERROR函数中。

更优雅的是,如果您想删除所有出现的“d”,或者只有一次其他出现,您可以使用以下公式:

=B10-SUMIFS($B$1:B9,$D$1:D9,D10)

相关内容