Excel中的数据操作:向后搜索行并仅提取非重复数据
我有一个除草剂应用和应用日期的数据集。 例如,原始数据集如下所示,其中“h1”是除草剂1,“d1”是除草剂1的应用日期,等等(除草剂用大写字母表示): 我将在同一日期使用的除草剂连接起来,因此现在数据集如下所示: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 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)))