Excel中的数据操作:向后搜索行并仅提取非重复数据

Excel中的数据操作:向后搜索行并仅提取非重复数据,excel,Excel,我有一个除草剂应用和应用日期的数据集。 例如,原始数据集如下所示,其中“h1”是除草剂1,“d1”是除草剂1的应用日期,等等(除草剂用大写字母表示): 我将在同一日期使用的除草剂连接起来,因此现在数据集如下所示: h1 d1 h2 d2 [h1,h2] h3 d3 [h2,h3] [h1,h2,h3] h4 d4 [h3,h4] [h2,h3,h4] [h1,h2,h3,h4] h5 d5

我有一个除草剂应用和应用日期的数据集。 例如,原始数据集如下所示,其中“h1”是除草剂1,“d1”是除草剂1的应用日期,等等(除草剂用大写字母表示):

我将在同一日期使用的除草剂连接起来,因此现在数据集如下所示:

h1  d1          h2  d2          [h1,h2] h3  d3          [h2,h3] [h1,h2,h3]  h4  d4          [h3,h4] [h2,h3,h4]  [h1,h2,h3,h4]   h5  d5          [h4,h5] [h3,h4,h5]  [h2,h3,h4,h5]   [h1,h2,h3,h4,h5]
A   30/09/15    B   20/10/15    FALSE   C   20/10/15    B + C   FALSE       D   20/10/15    C + D   B + C + D   FALSE           E   15/03/16    FALSE   FALSE       FALSE           FALSE
W   15/09/15    X   15/09/15    W + X   NA  15/09/15    X + NA  W + X + NA  Z   04/04/16    FALSE   FALSE       FALSE           A   30/07/16    FALSE   FALSE       FALSE           FALSE
A   30/09/15    NA  NA          FALSE   C   13/11/15    FALSE   FALSE       D   15/03/16    FALSE   FALSE       FALSE           P   18/04/16    FALSE   FALSE       FALSE           FALSE
A   30/09/15    B   20/10/15    FALSE   C   20/10/15    B + C   FALSE       P   20/10/15    C + P   B + C + P   FALSE           Q   20/10/15    P + Q   C + P + Q   B + C + P + Q   FALSE
下一步就是我被困的地方。 我想创建如下所示的最终数据集,其中“ap1”是第一次施用除草剂,“ap.date1”是第一次施用除草剂的日期:

ap1     ap.date1    ap2             ap.date2    ap3   ap.date3   ap4     ap.date4
A       30/09/15    B + C + D       20/10/15    E     15/03/16  
W + X   15/09/15    Z               04/04/16    A     30/07/16
A       30/09/15    C               13/11/15    D     15/03/16   P       18/04/16
A       30/09/15    B + C + P + Q   20/10/15                
我已将所有FALSE替换为NA,并替换了包含“+NA”的任何串联条目,例如:

W + X + NA
简单地

NA
我不想保留任何不真实的东西

我试过一些没有乐趣的公式

我已经试过了一些公式

=MAX(COLUMN($W2:$AR2))-MAX(IF($W2:$AR2<>"NA",COLUMN($W2:$AR2)))
=MAX(列($W2:$AR2))-MAX(如果($W2:$AR2“NA”,列($W2:$AR2)))
识别最后一个包含文本的单元格的位置,但这不是很有帮助

我在谷歌上搜索了很多次,但都没能解决这个问题

除草剂达到h7,有数千行


非常感谢您的帮助。

已解决!在朋友的帮助下,使用查找表和连接IF。

似乎您将从使用VBAThis中获益匪浅。我担心有人会这么说。我不知道VBA。你能给我指出一个有用的教程吗?我想另一种选择是在R中进行。同样,也不知道(目前!)如何进行。VBA上有很多教程。尝试使用步骤-1搜索循环,如果语句也可以在VBA中使用。在您的情况下:如果不是cell.value=“False”,那么dostuff谢谢Luuklag
=MAX(COLUMN($W2:$AR2))-MAX(IF($W2:$AR2<>"NA",COLUMN($W2:$AR2)))