用条件逻辑Excel来查找包含'X'的最后一行

我甚至不知道这是否可能在Excel中。 我需要一种方式来链接后续的行与以前的行(孩子到父母)。

例如,第2行包含E列中由“M”表示的父信息。

如果家长有3个孩子,3,4,5行,他们会在E列中包含“S”或“D”。

如果有'S'或'D'我需要罚款search最后一行有一个'M',然后从该行的B列(这是父母的唯一ID)中获取值,然后插入到第3,4和5行的列中,以创build3个孩子和一个父母之间的关系。 将会有一些情况下没有孩子的孩子,到目前为止,我们已经确定,下一行“向上”将始终是随后的孩子行的父母。

样本数据

所以在上面,因为E3和E4是第二行的D(女儿),我需要把B2(UID)放到F3和F4中。 由于下一行是M(父母)F5是空白的。 第6行是第5行的孩子,所以得到B5并将其复制到F6。

列B是名字的前3个字母的公式,dob格式为YYYYMMDD,对于子行不是必需的(但将被存储)。 希望澄清!

这是一个似乎工作的解决scheme:下面的公式将被写入E4 (作为数组公式input,即在PC上按Ctrl + Shift + Enter或在Mac上inputcmd-shift),然后根据需要复制下来。 它要求在其上面有足够的空间(因为你看起来“高于这行的三个”,这需要是一个有效的行)。

 =IF(NOT(E4="M"),INDEX(B$1:B3,MAX((E1:E3="M")*ROW(E1:E3)))," ") 

说明:

 =IF(NOT(E4="M") - check that this is not a "parent" (ie we need to do a lookup) MAX((E1:E3="M")*ROW(E1:E3))) - see what cell has an M. the (E1:E3) produces 0 or 1 - multiply by the row number and you get an array of 0 or row number - the MAX of this is the last row number with an M INDEX(B$1:B3, number) - find the corresponding value in column B - note the $ sign since the ROW is absolute row " " - empty space when there IF is false (ie this is a parent) 

这是它如何找我:

在这里输入图像说明

可能有更简单的方法,但是… =IF(F12="",IF(E13<>"M",B12,""),IF(E13="M","",F12))

在这里输入图像说明

我倾向于用额外的专栏来解决这种情况。 B列有你的ID,E列有分类。 假设列I(如果显示无用,可以隐藏)具有最近父代的ID。 假设我们从第二行开始(一会儿你会明白为什么)。 如果E2有“M”,那么我们需要ID(B2); 如果没有,我们想传播前一行的值。 这是这样的公式:

 =IF(E2="M", B2, I1) 

然后在F列,你的“链接到”列,使用这个公式:

 =IF(E2="M", "", I2) 

填好,这就是你所需要的。

更新以匹配新发布的图像

使用您提供的示例数据,在单元格F2中使用此公式并复制下来:

 =IF(E2="M","",LOOKUP(2,1/(E$2:E2="M"),B$2:B2))