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

Tus*_*usk 2 array microsoft-excel microsoft-excel-2011

如何制作一个返回第一个非空白单元格值但如果它在它旁边的左侧单元格中定义的函数,它将跳转 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
Run Code Online (Sandbox Code Playgroud)

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

EX:FK 单元格也是公式所在的地方。

bar*_*ini 5

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

=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根据公式的位置更改部分.....