Доброго времени суток. Столкнулся с такой проблемой: есть две таблицы в одну (на листе FXRB) данные подгружаются автоматически из вне, в другой формируются с использованием формулы =ЕСНД(ИНДЕКС(FXRB[Цена];ПОИСКПОЗ([@Дата];FXRB[Дата]));""). Все хорошо, но в таблице FXRB на искомые даты может не быть значений и в этом случае нужно выбрать значение с предыдущего дня, значения которого тоже могут оказаться пустыми, тогда нужно вернутся еще на один день назад и так до тех пор пока значения не будут найдены. Решил эту проблему таким способом:
Но формула очень громоздкая получается особенно если дней пустых окажется больше (здесь только на 4 дня назад, а максимум может на 30).
Вопрос можно ли как-то упростить данную простыни или решить другим способом (ВПР() сокращает, но не на много или я что-то упускаю).
З.Ы. Как решить это с помощью VBA представляю, но не хотелось бы.
З.З.Ы. файл прикладываю.
Скрытый текст |
---|
=ЕСНД(ЕСЛИ(ИНДЕКС(FXRB[Цена];ПОИСКПОЗ([@Дата];FXRB[Дата]))=0;ЕСЛИ(ИНДЕКС(FXRB[Цена];ПОИСКПОЗ([@Дата]-1;FXRB[Дата]))=0;ЕСЛИ(ИНДЕКС(FXRB[Цена];ПОИСКПОЗ([@Дата]-2;FXRB[Дата]))=0;ЕСЛИ(ИНДЕКС(FXRB[Цена];ПОИСКПОЗ([@Дата]-3;FXRB[Дата]))=0;ИНДЕКС(FXRB[Цена];ПОИСКПОЗ([@Дата]-3;FXRB[Дата]));ИНДЕКС(FXRB[Цена];ПОИСКПОЗ([@Дата]-3;FXRB[Дата])));ИНДЕКС(FXRB[Цена];ПОИСКПОЗ([@Дата]-2;FXRB[Дата])));ИНДЕКС(FXRB[Цена];ПОИСКПОЗ([@Дата]-1;FXRB[Дата])));ИНДЕКС(FXRB[Цена];ПОИСКПОЗ([@Дата];FXRB[Дата])));"") |
Но формула очень громоздкая получается особенно если дней пустых окажется больше (здесь только на 4 дня назад, а максимум может на 30).
Вопрос можно ли как-то упростить данную простыни или решить другим способом (ВПР() сокращает, но не на много или я что-то упускаю).
З.Ы. Как решить это с помощью VBA представляю, но не хотелось бы.
З.З.Ы. файл прикладываю.