Возвращаемые значения из другой книги

У вас есть вопрос о формуле, которая решит мою проблему. В моей основной книге мне нужно сравнить данные из двух источников. Один из столбцов должен извлекать данные (суммы) из другой книги. Мне нужна формула, которая будет искать все суммы в столбце G и будет пропускать все пустые ячейки. Пытался использовать функции VLOOKUP, INDEX и SMALL, но никакого эффекта. Каждый день суммы разные, и мне нужно сопоставить их в основном файле и найти исключения.

Есть идеи? введите описание изображения здесь

Вы можете пройти через столбец и сохранить каждое значение> 0 в массиве, а затем сравнить или пройти через столбец и сравнить напрямую …

что-то вроде:

Dim i as Integer = 0 Foreach value in Maintable Do If otherworkbook.cells(i,7) = value Then '7 for G do your stuff End If i = i + 1 While i < otherworkbook.rows.count Next 

Я думаю, что это может быть правильный подход

Как насчет формулы массива, такой как следующее?

 =INDEX($G$2:$G$20,SMALL(IF(($G$2:$G$20)=0,"",ROW($G$2:$G$20)),ROW()-1)-ROW($G$2:$G$20)+1) 

Формулу нужно было бы поместить в ячейку I2 в виде формулы массива (которую нужно ввести, нажав Strg + Shift + Enter ). Затем вы можете перетащить формулу, чтобы получить все остальные значения.

Это не должно быть в столбце I но оно должно быть в строке 2 потому что эта формула get является n-м номером из списка, который не равен 0. n-е место (в этой формуле) row()-1 . Таким образом, для строки 2 это будет 2-1=1 и, следовательно, 1-е число. Перетаскивая формулу, вы получаете номер 2, 3 и т. Д. Если вы начнете с формулы в ячейке I5 вместо этого, ее нужно будет скорректировать следующим образом:

 =INDEX($G$2:$G$20,SMALL(IF(($G$2:$G$20)=0,"",ROW($G$2:$G$20)),ROW()-4)-ROW($G$2:$G$20)+1) 

введите описание изображения здесь

Давайте будем гением компьютера.