Eu uso o Libreoffice. (Se Excel ou GooglePlanilhas fossem a única forma de obter uma solução, eu estaria disposto a mudar. Mas a plataforma preferida é o LibreOffice, estou procurando uma solução neste Software).
Aqui está o que eu quero alcançar, tenho uma planilha 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
Agora quero extrair todas as datas onde houver SIM na coluna "disponível". Meses diferentes não ocorrem neste cenário, portanto apenas o dia é relevante. O que eu quero ter como resultado em alguma outra parte da planilha seria
26, 29, 30
E para tornar tudo ainda mais complexo, e se eu quiser contar o número de dias em quecomprimento é >5edisponívelé verdade? No exemplo acima, isso seria
3
Isso é possível? Eu rabisquei com VLOOKUP, mas não tenho ideia por onde começar. Eu acho que o Excel funcionaria da mesma forma ou semelhante.
Quero que isso funcione sem a necessidade do usuário filtrar nada manualmente. A ideia é apenas copiar/colar os dados e obter o resultado via fórmula em outra planilha do arquivo e aí criar uma fatura.
Responder1
No Excel... e com base neste bom index() + match()referência.
A solução para esta parte:
"se eu quiser contar o número de dias em que a duração é >5 e disponível é verdade? >3"
se length for >5 , então você deverá obter 2.. não 3.. se length for >=5, então somente você obterá 3.
Supondo que seus dados de amostra estejam em A1:C7 , a resposta é:
=COUNTIFS(B:B,"yes",C:C,">5")
Você receberá 2.
e para esta parte:
"desejo extrair todas as datas onde existe um SIM na coluna "disponível""
Supondo que seus dados "2/8 9:00" estejam localizados em A2 e "31/8 9:00" estejam localizados em A7, todos os dados da coluna A de ID são formatados como formato de data/hora no Excel, coloque isso em 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))),"")
e isso em E2:
=IFERROR(DAY(D2),"")
você obterá o "26, 29, 30" lá.