Como faço para traduzir esse algoritmo para o Excel?


-2

Como posso traduzir este algoritmo para ser aplicável no Microsoft Excel:

For each value in A:A

Check values in C:C

If A[i] - C[j] = 30 minutes 

Then D[j] = B[i]

Iterate

A figura abaixo é um exemplo dos dados de tempo:

data


1
Por favor, compartilhe o que você tentou até agora?
CharlieRB

1
-1, mas vou removê-lo depois de compartilhar o que você tentou, como mencionado @CharlieRB.
Raystafarian

Desculpe por estar atrasado @Raystafarian eu postei isso como uma resposta como eu trabalhei para fora. Por favor, confira.
Leb_Broth

Respostas:


1

Na célula D1:

=IF(ROUND((A1-C1)*24*60,1) = 30, B1,"")

Em seguida, arraste-o para todos os seus valores.

Isso leva A1 - C1, que lhe dará uma representação decimal no tempo, multiplica por 24 e 60 para obtê-lo em minutos, arredonda para o próximo minuto inteiro e, finalmente, avalia se é 30. Se for, ele exibe B1 se não, uma célula em branco.

Dependendo do seu uso, você pode precisar usar & lt; ou & gt; para incluir valores que não sejam exatamente 30.


0

Eu fiz isso e funciona perfeitamente:

Sub Process()

Dim i,j,N,M as Integer

Dim Time_Diff as Integer

Dim TimeA,TimeC as Date

For i = 1 to 5
    TimeA=worksheets("Data").Range("A"&i).Value 
    For j = 1 to 17
        TimeC=worksheets("Data").Range("C"&j).Value 
        if  Datediff("n",TimeA,TimeC) = 30 then 
         worksheets("Data").Range("D"&j)=worksheets("Data").Range("B"&i)
         Goto SkipThis
         End if 
     Next j 
SkipThis:   
Next i

End sub
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.