2017-01-04 35 views
0

有点难倒了分裂功能,想知道是否有人可以帮助我。拆分地址 - 使用拆分()导致奇怪的5位

我有一个地址列表,我尝试分割数字和街道名称。举例来说,这些地址在它们中具有超大的含义。 10-09 Main St 所以我用= SPLIT(A1,“”)< - 列A具有所有地址。

结果我得到的是= 43017 MAIN ST

我可以使用菜单标签数据>>拆分文本列,但我想用一个脚本来自动执行它。有没有办法强制拆分函数将数据视为文本而不是数字?

预先感谢您

回答

0

你试图改变列类型flat text?当我将列类型设置为number时,我或多或少能够复制该行为,但是当我将该类型更改为flat text时,它的行为与预期相同。

尝试布局 - >数字 - >平面文本。

(因为我是荷兰人,选项可能被命名为略有不同 - 为道歉)

+0

对于我来说,在美国,相当于将FORMAT >> NUMBER >>纯文本。我已经将它们全部设置为纯文本,但使用分割函数并分割数字和文本的时候,它将10-09视为一个数字并将其转换为43017 – User125

+0

您尝试过'SPLIT(TEXT(A1), “”)'? 或者:在SPLIT之后得到第一个项目,试试 'INDEX(SPLIT(A1;“”),0,-1)' – Nietvoordekat

+0

因此TEXT需要一个'格式',唯一的选项是指数字或日期。我认为你的意思是SPLIT(T(A1),“”),然而,它仍然吐出随机数。如果我使用索引,它只吐出1列,我需要所有三个。 我注意到的是,如果列设置为自动,数字分裂正确,但它认为这是一个日期。如果我将它设置回纯文本(每当我只复制/粘贴值时都会发生这种情况),它会吐出5位数字。)这些炒作让它认为这是一个日期,我似乎无法获取Google表格不会将其作为默认行为 – User125

0

这将与这两个用户自定义函数的工作。假设你的地址在A1。

function nbr(range) { 
    var addr = range.split(" "); 
    return addr[0];// just the nbr 
} 
function street(range) { 
    var addr = range.split(" "); 
    var array=[] 
    for(var i=1;i<addr.length;i++){ 
    array.push(addr[i]) //create an array of split addr starting with second element 
    } 
    return array.toString().replace(/,/g," ")// convert array to string and replace all commas with soaces 
} 

在B1看跌= NBR(A1)和C1放=街道(A1)

+0

可以确认此操作。另外:刚发现你可以在Google Spreadsheets中编写自己的函数 - 每天学习一些东西:) – Nietvoordekat