Цикл For / While с двойным условием в Excel - PullRequest
0 голосов
/ 04 июня 2018

У меня есть список с интервалами дат и преобразованиями валют, связанными с этими интервалами.См. Пример ниже:

Start Date  Close Date  EUR
30/03/2013  26/04/2013  1.18
30/03/2013  26/04/2013  1.18
27/04/2013  24/05/2013  1.19
25/05/2013  28/06/2013  1.17
29/06/2013  26/07/2013  1.17
27/07/2013  23/08/2013  1.16
24/08/2013  27/09/2013  1.16 
28/09/2013  25/10/2013  1.19
26/10/2013  22/11/2013  1.17
23/11/2013  27/12/2013  1.2
28/12/2013  24/01/2014  1.2
05/01/2014  21/02/2014  1.21
22/02/2014  28/03/2014  1.21
29/03/2014  25/04/2014  1.21
26/04/2014  23/05/2014  1.21
04/05/2014  27/06/2014  1.24
08/06/2014  25/07/2014  1.25
26/07/2014  22/08/2014  1.26
23/08/2014  25/09/2014  1.25
26/09/2014  23/10/2014  1.28

Мне нужно преобразовать каждый интервал дат в отдельные строки, включая все возможные даты в пределах интервала, и сохранить соответствующие коэффициенты конверсии.Таким образом, для первого интервала дат это будет:

30/03/2013  1.18
31/03/2013  1.18
01/04/2013  1.18
02/04/2013  1.18
03/04/2013  1.18
04/04/2013  1.18
05/04/2013  1.18
06/04/2013  1.18
07/04/2013  1.18
08/04/2013  1.18
09/04/2013  1.18
10/04/2013  1.18
11/04/2013  1.18
12/04/2013  1.18
13/04/2013  1.18
14/04/2013  1.18
15/04/2013  1.18
16/04/2013  1.18
17/04/2013  1.18
18/04/2013  1.18
19/04/2013  1.18
20/04/2013  1.18
21/04/2013  1.18
22/04/2013  1.18
23/04/2013  1.18
24/04/2013  1.18
25/04/2013  1.18
26/04/2013  1.18

Есть ли в любом случае это легко для всех диапазонов дат?Я придумал что-то вроде этого в Excel:

=IF(AND(A1>='Sheet1'!$A$1, A1<='Sheet1'!$B$1), 'Sheet1'!$C$1), A1 = текущая ячейка, содержащая дату;Sheet1! A1 = Дата начала;Sheet1! B1 = Дата закрытия;C1 = конверсия в евро

Проблема в том, что мне нужно переходить к следующей строке каждый раз, когда условия не применяются.Это означает, что каждый раз, когда анализируемая дата выходит за пределы рассматриваемого интервала, мне нужно увеличивать позицию строки на единицу в Sheet1.Любая помощь будет оценена.VBA будет в порядке.

Бест, Антонио

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Небольшое изменение в обоих кодах.

Столбцы ActiveSheet ("A: A"). NumberFormat = "m / d / yyyy"

до

ActiveSheet.Columns ("A: A"). NumberFormat = "m / d / yyyy"

0 голосов
/ 04 июня 2018

Как?

...