Excel:如果条件不满足则使用之前的值,忽略空格

Excel: use previous value if condition not met, ignoring blanks

我正在尝试将数据与 IF 和 vlookup 匹配,但似乎无法正常工作。任务是:

Row 1    A    B      C        D
Row 2    1    251    8:00:00    
Row 3    2    253    
Row 4    1    252    
Row 5    2    254    8:00:01  
Row 6    1    257       
Row 7    2    250    8:00:02
Row 8    3    260    
Row 9    4    248    
Row 10    1    255    8:00:03

如果C列有值,那么我想用A列中的前一行减去A列,如果当前行小于前一行,我想在D列中记录对应的B列值。如果为假,则在B列中找到上一个有效单元格,使得当前A小于上一个A,并记录在D中。如果C列没有值,则留空。

例:C2有值,但前面没有数据,所以D2为空。 C5 有值,A5 > A4,因此我们试图找到以前的值,直到找到 A4 < A3,我们将 B4 的值(即 252)记录在 D4 中。 C10有值,A10 < A9,我们在D10中记录B10(即255)

Row 1    A    B      C        D
Row 2    1    251    8:00:00    
Row 3    2    253    
Row 4    1    252    
Row 5    2    254    8:00:01  252
Row 6    1    257       
Row 7    2    250    8:00:02  257
Row 8    3    260    
Row 9    4    248    
Row 10    1    255    8:00:03 255

为了实现这个目标,我会:

  1. 在现有的 A 列和 B 列之间插入一个新列
  2. 在单元格 B2 中输入公式 =B1+IF(A2<A1,1,0) 并根据需要将此公式复制到 B 列中的任意多个条目
  3. 在单元格 E3 中(不要费心从 E2 开始,因为您知道您希望此单元格为空)输入公式 =IF(D3&""<>"",VLOOKUP(MAX($B:B3),B:C,2,FALSE),"")
  4. 复制 E3 应该会得到您想要的结果。