1

Я ищу упростить сортировку сотен конвертов почтовыми зонами USPS. Трудность состоит в том, чтобы вручную сортировать их для каждой из 8 зон США, исходя из начального почтового индекса: 91352.Формула для определения почтовой зоны USPS на основе почтового индекса

http://postcalc.usps.gov/ZoneCharts/

У меня есть таблица контактов, которая включает столбец ZIP. Я создал отдельный лист всего сайта USPS ZoneCharts на основе «913» и объединил четыре раздела в один (всего по два столбца). Затем я использовал ВЛЕВО и ВПРАВО функции, чтобы получить первые три и последние три цифры первого столбца и поместить их в свои собственные столбцы (в настоящее время суммарно три колонки):

 
ZIP_BEG ZIP_END Zone 
005  098  8 
100  212  8 
214  268  8 
270  342  8 
344  344  8 
346  347  8 
349  349  8 
350  352  7 
354  359  7 
360  361  8 
362  362  7 
363  364  8 
365  366  7 
...etc.

ли я использовать функцию ВПР из лист контактов для поиска в каждом ZIP (используя функцию LEFT, чтобы использовать только первые три числа каждого значения ZIP), а затем проверить, превышает ли это значение значение ZIP_BEG и меньше значения ZIP_END?

Какой бы ни была строка, она вернет значение Зоны. Я помещаю это как столбец после столбца ZIP на первом листе.

+1

Похоже, вы все поняли. Каков твой вопрос? – simbabque

+0

О, да? Большой! За исключением того, что я не могу понять, как применять большую или меньшую, чем логику (и проверку на основе двух столбцов) в VLOOKUP. Мой мозг взрывается, когда я пытаюсь написать формулу. Вы знаете, как и где я мог бы лучше понять, как написать формулу для такого типа проблем? Благодаря! – zacourie

+0

Я пытался сказать, что я не понимаю из вашего описания, в чем проблема. ;-) – simbabque

ответ

4

Разделение всех возможных почтовых индексов представляется жизнеспособным, но может быть «излишним» (хотя может быть полезно обнаружить ошибки). Я предполагаю, что код, который не указан в указанном диапазоне, не является (а) недействительным, но (b) не требуется каким-либо образом помечать, поэтому, например, 099 никогда не будет возникать на практике (если таблицы не обновлены) или можно «безопасно» обрабатывать как 098.

Это, чтобы сделать возможным рассмотреть только одно значение для каждого диапазона (до изменения зоны), удобно ваших ZIP_BEG того, в сочетании с неточного ВПРОМ. Синтаксис VLOOKUP является:

ВПР (искомое_значение, таблица_массив, номер_столбца, интервальный_просмотр)

, где четвертый параметр (интервальный_просмотр) является необязательным. Забыть или установить его в ИСТИНА (или 1) по ошибке вызвало много горя, но может быть очень подходит здесь.

процитировать:

Если TRUE или опущен, точное или приближенное совпадение возвращается. Если точное совпадение не найдено, возвращается следующее наибольшее значение, меньшее, чем lookup_value. Значения в первом столбце table_array должны быть помещены в порядке возрастания сортировки; иначе VLOOKUP может не дать правильное значение.

(Это бинарный поиск, поэтому необходимо знать, в каком направлении все более и которые меньше) .Your значения уже должны быть в обязательном порядке, так формула, такие как:

=VLOOKUP(A2,ZIPUP,2) 

где-то в одной и той же рабочей книге должно быть достаточно, чтобы оценивать значение (первые три цифры места назначения Zip), как предполагается, в A2, а ZIPUP - это название диапазона областей применения: ZIP_BEG в одном столбце и Zone в сопоставлении строки в столбце сразу справа от него.

Учитывая исходные предположения, весь список ZIP-BEG не требуется (108 'диапазонов), поскольку, используя только пределы, 74 достаточны (и должны быть быстрее).

Если не агрегировать полосы таким образом, остерегайтесь форматирования, поскольку 005 - это не то же самое, что и 5, и это различие относится к = VLOOKUP. Вы использовали = LEFT и = RIGHT для извлечения списков, а эти текстовые функции возвращают строки, хотя здесь я бы предпочел форматирование чисел самостоятельно. (Я разделил диапазоны с текстом на столбцы.)

Смежные вопросы