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

Leb_Broth
fonte
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.

Jonno
fonte
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
Leb_Broth
fonte