
У меня есть 3 листа в книге Excel, я хочу сравнить столбец C из листа 1 со столбцом C листа 2, если где-либо есть такое же число, то я хочу, чтобы значение столбца G из листа 2 было помещено в столбец G на листе 3.
решение1
Допустим, у вас есть лист1:
a b 1
a b 2
a b 3
a b 4
a b 5
И лист2:
a b 6 ... x
a b 2 ... gg
a b 7 ... x
a b 5 ... zz
a b 8 ... x
И так, на листе 3 вы хотите (с или без столбцов A..F)
a b 2 ... gg
a b 5 ... zz
Самое простое решение, но с некоторыми ручными операциями:
Добавьте столбец на листе 2 со следующей формулой (предполагая, что заголовки находятся в строке 1)
=IF(ISERROR(MATCH(C2,Sheet1!$C$2:$C$100000,0)),FALSE,TRUE)
Добавьте фильтр на лист2 и фильтр для значений ИСТИНА. Скопируйте и вставьте на лист3
Используя только формулы (без ручного копирования и вставки):
"Если правда, то копировать" как ФОРМУЛА изначально не существует в Excel. Это потребовало бы, чтобы ячейка с формулой могла изменять значение в другой ячейке (а не только свое собственное значение). Это противоречит тому, как работает электронная таблица, и привело бы ко всем видам отвратительной циклической логики и медленным вычислениям. Вместо этого представьте, что вы вводите формулу в ячейку, в которую хотите скопировать (Лист3!G2...). Эта формула может обращаться к столбцу Лист2!G иссылкаего ценность (но не печатная версия).
Итак, вы можете поместить в Sheet3!G2:
=IF(ISERROR(MATCH(Sheet2!C2,Sheet1!$C$2:$C$100000,0)),"",Sheet2!G2)
У вас будут данные для сравнения, но также и множество пустых строк, где не было совпадений. Вы снова можете добавить фильтр, чтобы избавиться от пробелов.
Чтобы полностью решить эту задачу, используя только формулу, необходимо пронумеровать спички на листе 2 следующим образом:
a b 6 ... x 0
a b 2 ... gg 1
a b 7 ... x 1
a b 5 ... zz 2
a b 8 ... x 2
Используя эту формулу в столбце H Листа 2, начиная с H2:
=IF(ISERROR(MATCH(C2,Sheet1!$C$2:$C$100000,0)),IF(ROW() = 2,0,H1+1), IF(ROW() = 2,1,H1+1))
Затем найдите эти совпадения, используя функции ИНДЕКС, ПОИСКПОЗ и СТРОКА в столбце G листа 3, начиная с G2:
=INDEX(Sheet2!$G$2:$G$100000,MATCH(ROW()-1,Sheet2!$H$2:$H$100000,0))