[英]Referencing a cell's row value using a formula
假设我的 excel 表如下所示:
姓名 | 房屋 | 拥有的汽车 | D列 |
---|---|---|---|
约翰 | 3 | 3 | =A&MAX(30,3) |
哈利 | 2 | 4 | .. |
维克 | 5 | 1 | .. |
.. | p | ķ | .. |
... | q | n | .. |
在 D 列中,我想返回 A 列中对应于单元格 B2 和 C2 中两个值中较大者的行。 所以在单元格 D2 中,我想返回“Vik”,因为 B2 (3) 和 C2 (3) 中的两个值中较大的一个是 3。单元格 A3 中的值是 Vik。
所以为了得到我的结果,我会在 D2 中输入类似 ="A"&MAX(B2,C2) 的内容。
但是假设我的公式要复杂得多,并且数据不同。
=IFERROR(ArrayFormula(ADDRESS(MAX(index(IF($A$1:$D6=B7,ROW($A$1:$D6),""),,IF($A$1:$D6=B7,COLUMN($A$1:$D6)),"")),MAX(IF($A$1:$D6=B7,COLUMN($A$1:$D6),"")))),"")
我想要公式的第一块的结果(从 ADDRESS() 开始)
MAX(index(IF($A$1:$D6=B7,ROW($A$1:$D6),"")
(例如3 )作为输入的行号
MAX(IF($A$3:$D3=B7,COLUMN($A$1:$D6),""))
用于 IF 条件内的范围。
(注意 $A$1:$D6 如何更改为 $A$3:$D6)
因此,按照上面的表格示例,我只需输入MAX(IF("$A$"&MAX(index(IF($A$1:$D6=B7,ROW($A$1:$D6),""):$D6=B7,COLUMN($A$1:$D6),""))
这应该可以解决问题。除非它没有,我得到一个我无法解决的公式解析错误。
这是我正在处理的特定 excel 表: https://docs.google.com/spreadsheets/d/12U8U7Jp4FscobIvgr4_sADJB_oSdIHrboCk02cxFscobIvgr4_sADJB_oSdIHrboCk02cxFsshare=u0
谁能看到我做错了什么? 我认为解决方案应该足够简单,但我似乎无法弄清楚。
对不起,如果它有点长,但我已经为此苦苦挣扎了一段时间。
使用间接 function 和 & 连接解决。
新的 function 将是: =IFERROR(ArrayFormula(ADDRESS(MAX(index(IF($A$1:$D6=B7,ROW($A$1:$D6),""),,IF($A$1:$D6=B7,COLUMN($A$1:$D6),""))),MAX(IF(INDIRECT("$A$"&(MAX(index(IF($A$1:$D6=B7,ROW($A$1:$D6),""))))):$D6=B7,COLUMN($A$1:$D6),"")))),"")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.