如何制作一个函数,该函数将返回第一个非空白单元格值,但如果它在旁边的左侧单元格中定义,它将跳过 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
根据公式的位置改变部分.....