Búsqueda de Excel hacia arriba

Búsqueda de Excel hacia arriba

Considere este ejemplo de tabla de Excel:

    A         B                                                          C
|  Time  |  Action                                              |  
|     1  |  Adam arrives                                        |  
|     2  |  Adam leaves                                         |  
|     3  |  Berta arrives                                       |  
|     4  |  Berta says: Huhu!                                   |  
|     5  |  Berta leaves                                        |  ?
|     6  |  Caesar arrives                                      |  
|     7  |  Doris arrives                                       |  
|     8  |  Caesar says: Have you recently seen Brutus, Doris?  |  
|     9  |  Adam arrives                                        |  
|    10  |  Doris says: No! I think he wants to kill you!       |  
|    11  |  Adam leaves                                         |  ??
|    12  |  Caesar says: I know                                 |  
|    13  |  Doris leaves                                        |  ???
|    14  |  Caesar leaves                                       |  ????

Quiero calcular cuánto tiempo estuvieron las personas en el chat y mostrarlo en la columna C. Excluyamos todas las cosas comosi Bx contiene un mensaje de salida, vacío si noyanalizar el nombre para dejar el mensajey concentrarse sólo en el cálculo de la duración. Para eso , en las celdas marcadas con ?, ??y , necesito una fórmula como???????busca "$persona llega" en el rango B2 a B$currentLine-1 y dame la línea del último resultado. Con esa información, puedo obtener la hora.

¿Es eso siquiera posible?

Respuesta1

Coloque esto en C2 y asígnele un formato de número de celda apropiado y luego arrástrelo hacia abajo en la columna.

=IF(RIGHT(B2, 7)=" leaves", A2-AGGREGATE(14, 7, (A$2:A2)/(B$2:B2=SUBSTITUTE(B2, " leaves", " arrives")), 1), "")

Respuesta2

Puedes utilizar esta fórmula para resolver tu problema:

=IF(IFERROR(SEARCH("leaves",B2),0)>0,MAX($A1:$A$2*($B1:$B$2=SUBSTITUTE(B2,"leaves","arrives"))),"")

Esta es una fórmula matricial, por lo que debe presionar CTRL+ SHIFT+ ENTERdespués de presionarla.

ingrese la descripción de la imagen aquí

Respuesta3

Se puede utilizar una fórmula de búsqueda inversa para solucionar el problema:

ingrese la descripción de la imagen aquí

  • Fórmula en celda F95, complétela.

    =IF(LEFT(D94,5)<>LEFT(D95,5),IFERROR(INDEX(C95:C108,MATCH(LEFT(D95,(FIND(" ",D95,1)-1))&" Arrives",D95:D108,0),1),""),"")
    
  • La característica clave de esta fórmula es:

MATCH(LEFT(D95,(FIND(" ",D95,1)-1))&" Arrives"

  • Busca, Timeen Column Clos nombres con cadena Arrives.

Puede ajustar las referencias de celda en la fórmula según sea necesario.

información relacionada