根据邮政编码确定美国邮政邮区的公式
我期望通过USPS邮政区域对数百个信封进行分类。 难点在于必须根据原始邮政编码91352
手动对8个美国地区中的每个地区进行91352
。
http://postcalc.usps.gov/ZoneCharts/
我有一个包含ZIP列的联系人的电子表格。 我已经build立了一个基于“913”的所有USPS ZoneCharts网站的单独表格,并将这四个部分合并为一个(总共两列)。 然后,我使用左右函数来得到第一列的前三位和后三位数字,并把它们放到自己的列中(现在是三列):
ZIP_BEG ZIP_END区域 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 ...等等。
我是否会使用联系表中的VLOOKUP函数来search每个ZIP(使用LEFT函数仅使用每个ZIP值的前三个数字),然后检查该值是否大于ZIP_BEG值且小于ZIP_END值?
无论它匹配什么行,它都会返回区域值。 我把它放在第一张表格的ZIP列后面。
分解出所有可能的邮政编码似乎是可行的,但可能是“矫枉过正”(尽pipe对检测错误非常有用)。 我假定不在上述范围内的代码是(a)无效的,但是(b)不需要以任何方式标记,因此例如099
将不会在实践中出现(除非表格被更新)或可以'安全地'被视为098
。
这是为了使每个波段只能有一个值(在Zone变化之前),方便的是你的ZIP_BEG
,以及不精确的VLOOKUP 。 VLOOKUP的语法是:
VLOOKUP(Lookup_Array中,则table_array,Col_index_num为,range_lookup)
第四个参数(range_lookup)是可选的。 忘记它或错误地将它设置为TRUE(或1
)已经引起许多悲伤,但在这里可能是非常合适的。
去引用:
如果为TRUE或省略,则返回确切或近似匹配。 如果未find完全匹配,则返回小于lookup_value的下一个最大值。 table_array的第一列中的值必须按升序排列; 否则,VLOOKUP可能不会给出正确的值。
(它进行二分search,所以需要知道哪个方向更多,哪些方向更less)。您的值应该已经是所需的顺序,所以一个公式,例如:
=VLOOKUP(A2,ZIPUP,2)
在同一个工作簿中的某个位置应该是足够的,其中要查找的值(目标Zip的前三位数字)被假定为在A2中,而ZIPUP
是一列中ZIP_BEG
的工作簿范围的范围的ZIP_BEG
,立即在列的右边匹配列中的行。
考虑到最初的假设,整个ZIP-BEG
列表不需要(108'范围),因为仅使用限制就足够了(应该更快)。
如果不以这种方式汇总频段,请注意格式为005
与5
不同,并且该区别与= VLOOKUP相关。 你已经使用=左和右=来提取你的列表和这些文本函数返回string,虽然在这里,我宁愿数字格式自己。 (我把文本分割为列。)