在excel

时间:2018-04-04 12:33:49

标签: excel string excel-vba sequence data-extraction vba

我有一个地址列表,我需要从中提取最后一个数字序列(邮政编码)。我正在寻找一个通用的表达式,我可以从世界各地的地址中提取邮政编码。我想,我必须调整表达式,以使其适用于每个国家或一组国家。

我正在尝试在excel中编写一个能够识别字符串中最后一位数字的公式,并从中提取紧接在最后一位数字之前的数字,并在它达到非整数时停止。下面我有一个地址的例子和我提出的公式(在E26中),但我正在寻找更紧凑的东西:

国家药物教育与研究所(NIPER),第67区,第67区,SAS Nagar,Punjab,160062,印度。

=MID(E26, MAX(IF(ISNUMBER(VALUE(MID(E26,ROW(INDIRECT("1:" & LEN(E26))),1))),ROW(INDIRECT("1:" & LEN(E26))))+1)-6, 6)

识别最后一个数字的第一部分工作正常,问题是识别序列的开始,至少在字符串中还有街道号码的情况下(例如在这种情况下)。这就是为什么我将-6添加到找到最后一位数的位置,因为我知道这个特定国家/地区的邮政编码的长度。但是,并非所有国家都是如此。

另外还有一些情况,序列之间有一个空格,例如: 160 062 。此外,它们并不总是具有我可以用来提取邮政编码的分隔符,因此,需要一个算法的原因。

我想知道是否有一种令人讨厌的方法吗?我会对VBA开放。谢谢你的帮助!

祝你好运, 安东尼奥

0 个答案:

没有答案