从空白单元格之间的下一个单元格分配值

本质上,我有一个非常长的专栏,像这样的东西

A [blank] 1 2 3 2 5 [blank] B [blank] 4 2 5 3 2 [blank] C [blank] 9 [blank] D 

A,B,C等是存储“项目”(号码)的“地点”的名称。 这些位置显示在该位置的“项目”列表的末尾。 我需要的是一个可以在列表中运行的公式,并在单独的列中返回以下结果:

 A [blank] 1 B 2 B 3 B 2 B 5 B [blank] B [blank] 4 C 2 C 5 C 3 C 2 C [blank] C [blank] 9 D [blank] D 

尝试只有边际效果的任何事情。 任何帮助将非常感激。

我尝试了一些IF变化

 =IF(AND(B1="",B3=""),B2,"") 

然后我再详细一点

 =IF(B:B<>"",INDIRECT(ADDRESS(MIN((B:B<>"")*(ROW(B:B))),COLUMN(B:B)))) 

但问题是我不需要MIN(first)MAX(last) ,只是两个空白之间的下一个“位置”

假设您的数据是从单元格A1A18 ,下面是基于您的testing数据为我工作的公式:

 =IF(ISTEXT(A1),"", CONCATENATE(IF(ISTEXT(A1),"", IF(ISBLANK(A1),"",A1))," ", IF(AND(A2="",A4=""), IF(OR(ISNUMBER(A3),A3=""),"",A3), IF(A1="","",B2) ) ) ) 

该公式使用IF, ISTEXT, ISBLANK, AND, OR, ISNUMBER
只需将此公式放在单元格B1 ,然后向下拖动,直到列A有数据。

  • 基于评论和更新的问题

如果你只需要A,B,C等,就让我们来说B栏,然后把下面的公式放在B1单元格中,然后拖拽它。 我已经增强了前锋埃德的公式。

 =IF(AND(A2="",A4=""),IF(OR(ISNUMBER(A3),A3=""),"",A3),IF(A1="","",B2)) 

如果您遇到任何问题,请告诉我。

这将拉起尾部地址,并把它放在数字旁边的单元格中。 但是,如果您需要在同一个单元格中的编号和结尾地址,则公式将需要连接进行修改。

 =IF(AND(A2="",A4=""),A3,IF(A1="","",B2)) 

把它放在A旁边的列中,假设A在单元格A1中,然后复制下来。