Yo uso Libreoffice. (Si Excel o GoogleSpreadsheets fueran la única forma de obtener una solución, estaría dispuesto a cambiar. Pero la plataforma preferida es LibreOffice, estoy buscando una solución en este software).
Esto es lo que quiero lograr, tengo una hoja de cálculo como esta:
|Date |Available? |Length |
|2/8 9:00 |no |10
|26/8 9:00 |yes |5
|28/8 9:00 |no |2
|29/8 8:00 |yes |5.5
|30/8 9:00 |yes |6
|31/8 9:00 |no |3
Ahora quiero extraer todas las fechas en las que hay un SÍ en la columna "disponible". En este escenario no ocurren meses diferentes, por lo que solo el día es relevante. Lo que quiero tener como resultado en alguna otra parte de la hoja de cálculo sería
26, 29, 30
Y para hacerlo aún un poco más complejo, ¿qué pasa si quiero contar el número de días en los quela longitud es >5ydisponible¿es verdad? En el ejemplo anterior, esto sería
3
¿Es eso posible? Intenté hacer garabatos con BUSCARV pero no tengo idea de por dónde empezar. Supongo que Excel funcionaría igual o similar.
Quiero que esto funcione sin la necesidad de que el usuario filtre nada manualmente. La idea es simplemente copiar/pegar los datos y obtener el resultado mediante la fórmula en otra hoja del archivo y crear una factura allí.
Respuesta1
En Excel... y basado en este buen índice() + coincidencia()referencia.
La solución para esta parte:
"Si quiero contar el número de días cuya duración es >5 y están disponibles, ¿es cierto? > 3 "
si la longitud es >5, entonces deberías obtener 2... no 3... si la longitud es >=5, entonces solo obtendrás 3.
Suponiendo que sus datos de muestra están en A1:C7, la respuesta es:
=COUNTIFS(B:B,"yes",C:C,">5")
Obtendrás 2.
y para esta parte:
"quiero extraer todas las fechas donde hay un SÍ en la columna "disponible" "
Suponiendo que sus datos "2/8 9:00" están ubicados en A2 y "31/8 9:00" están ubicados en A7, todos los datos de la columna A de ID tienen el formato de fecha/hora en Excel, coloque esto en D2:
=IFERROR(IF(ROWS($A$2:$A2)>1,INDEX(OFFSET($A$2:$A$7,MATCH(D1,$A$2:$A$7,0),0),MATCH("yes",OFFSET($B$2:$B$7,MATCH(D1,$A$2:$A$7,0),0),0)),INDEX($A$2:$A$7,MATCH("yes",$B$2:$B$7,0))),"")
y esto en E2:
=IFERROR(DAY(D2),"")
obtendrás el " 26, 29, 30 " allí.