В Excel 2010 TAB1 и TAB2 находятся на одном листе.
Я хочу заполнить столбец D таблицы TAB1 автоматически заполненного столбца E таблицы TAB2 на основе значений столбца C таблицы TAB2.
TAB1 выглядит так:
COLUMN C COLUMN D COLUMN E
1
2
3
4
5
6
7
8
TAB2 выглядит так
COLUMN C COLUMN E (AUTOFILLED FROM COLUMNS F & G)
1 1205 Grandview Ave
1 1207 Grandview Ave
1 1209 Grandview Ave
1 1211 Grandview Ave
2 1500 W 1st Ave
2 1502 W 1st Ave
2 1504 W 1st Ave
3 1240 Oakland Ave
У меня в TAB1 либо 144, либо 288 строк, а в TAB2 — меньше.
Как мне это сделать?
решение1
Если я правильно понял вопрос, вы пытаетесь сделать что-то вроде этого:
Я предполагаю, что вы хотите получить идентичную часть адресов, а не всю строку, например, Grandview Ave
а не 1205 Grandview Ave
. Учитывая данные в вашем образце, это можно сделать, просто вырезав все до первого пробела в значении ячейки. Если пробелов нет, значение ячейки не будет вырезано.
=IFERROR(RIGHT(G3, LEN(G3) - LEN(LEFT(G3, FIND(" ", G3, 1)))), G3)
FIND(" ", G3, 1)
находит первое место в ячейкеГ3.LEFT(G3, FIND())
получает все, что находится слева от первого пробела.LEN(LEFT())
возвращает количество символов до первого пробела.RIGHT(G3, LEN(G3) - LEN())
получает все, что находится справа от первого пробела.IFERROR(RIGHT(), G3)
возвращает значение ячейки, если пробелы не найдены.
После получения строки, которую мы хотим отобразить, остается только выполнить a, VLOOKUP
чтобы найти значение с правильным индексом. Ячейка будет пустой, если совпадений не найдено.
=IFERROR(VLOOKUP(B3,F:J,5,FALSE),"")
VLOOKUP(B3,F:J,5,FALSE)
находит первое значение в пятом столбце диапазонаФ:Джсо значением ячейкиВ3находится в первом столбце.IFERROR(VLOOKUP(),"")
возвращает пустую строку, если совпадений не найдено.
Обе формулы можно копировать.
Бонус АЕсли вам не нужно отображать номер первого совпадения, вы можете просто использовать:
=IFERROR(VLOOKUP(B3,F,G,2,FALSE),"")
Бонус БЕсли вы не хотите создавать опорную колонну, вы можете объединить две формулы, заменив каждое появлениеГ3в первой формуле с формулой, найденной в Бонусе А, что приводит к следующему чудовищу:
=IFERROR(RIGHT(IFERROR(VLOOKUP(B3,F:G,2,FALSE),""), LEN(IFERROR(VLOOKUP(B3,F:G,2,FALSE),"")) - LEN(LEFT(IFERROR(VLOOKUP(B3,F:G,2,FALSE),""), FIND(" ", IFERROR(VLOOKUP(B3,F:G,2,FALSE),""), 1)))), IFERROR(VLOOKUP(B3,F:G,2,FALSE),""))
Также обратите внимание, что некоторые страны используют ;
вместо ,
в формулах.