如何返回第一个非空白单元格,如果它之前已经有一个值,则返回第三个非空白单元格,依此类推?

如何返回第一个非空白单元格,如果它之前已经有一个值,则返回第三个非空白单元格,依此类推?

如何制作一个函数,该函数将返回第一个非空白单元格值,但如果它在旁边的左侧单元格中定义,它将跳过 2 个单元格并寻找下一个值。

Table:  
1 | 2 | 3 | 4 | 5 | 6 | 7 || 29 | 30 | 31 | 32...
a | b |   |   | c | d |   || a  | c  |    |
  |   |   | a | b |   |   || a  |    |    |
a | b | c | d | e | f | g || a  | c  | e  | g

来自 DL3:EW4873 的值总是成对的,但我只需要第一个值,并且仅当它不是 EX 到 EK 范围内的值时才需要。

EX:FK 单元格也是公式存放的地方。

答案1

好的,这些范围不重叠吗?无论如何,请尝试此版本,根据需要调整范围

=INDEX(AO3:EU3,MATCH(1,INDEX(ISNA(MATCH(AO3:EU3,EK3:EX3,0))*(MOD(COLUMN(AO3:EU3)-COLUMN(D3),2)=0)*(AO3:EU3<>""),0),0))

查找替代单元格 AO3、AQ3、AS3 等中的第一个非空白值,该值与 EK3:EX3 中的任何值都不匹配

修改建议:

好的,根据您的评论,我假设您仍然需要来自备用单元格的非空白数据,因此对于 AO3:EI3 中的数据和 EJ3 空白,尝试在 EK3 中复制此公式以获取下一个不同的值

=IFERROR(INDEX($AO3:$EH3,MATCH(1,INDEX((COUNTIF($EJ3:EJ3,$AO3:$EH3)=0)*(MOD(COLUMN($AO3:$EH3)-COLUMN($AO3),2)=0)*($AO3:$EH3<>""),0),0)),"")

当值用完时,您会得到空白.....

修改后的建议2:

仅在 EX3 中尝试此公式

=IFERROR(INDEX($DL3:$EW3,MATCH(1,INDEX((MOD(COLUMN($DL3:$EW3)-COLUMN($DL3),2)=0)*($DL3:$EW3<>""),0),0)),"")

然后把 EY3 中的这个复制到

=IFERROR(INDEX($DL3:$EW3,MATCH(1,INDEX((COUNTIF($EX3:EX3,$DL3:$EW3)=0)*(MOD(COLUMN($DL3:$EW3)-COLUMN($DL3),2)=0)*($DL3:$EW3<>""),0),0)),"")

“第二对”的修订版本 - 这应该只从第一个公式中选取相关值

=IFERROR(INDEX($DL3:$EW3,MATCH(1,INDEX((MOD(COLUMN($DL3:$EW3)-COLUMN($DL3),2)=0)*($DL3:$EW3<>""),0),0)+1)&"","")

EY3 中的这个复制到

=IFERROR(INDEX($DL3:$EW3,MATCH(1,INDEX((COUNTIF($EX3:EX3,$DL3:$EW3)=0)*(MOD(COLUMN($DL3:$EW3)-COLUMN($DL3),2)=0)*($DL3:$EW3<>""),0),0)+1)&"","")

$EX3:EX3根据公式的位置改变部分.....

相关内容