2017-01-04 2 views
0

スプリット機能でちょっと困惑しました。スプリットアドレスで - split()を使用するとwierdが5桁になります

私は、番号と通りの名前を分割しようとしているアドレスのリストを持っています。これらのアドレスには例えばハイフンが含まれています。 10-09 Main St 私は= SPLIT(A1、 "")<を使用しました。列Aはすべてのアドレスを持っています。

私が得る結果は、私はメニュータブデータ>>列からスプリットテキストを使用することができますが、私は、スクリプトを使用して、それを自動化しようとしている= 43017 MAIN ST

です。分割機能がデータを数字ではなくテキストとして扱うように強制する方法はありますか?

あなたはflat textに列の型を変更しようとしたことがあり、事前

答えて

0

でいただきありがとうございますか!列の型をnumberに設定したときの動作を多かれ少なかれ再現できましたが、タイプをflat textに変更したとき、期待どおりに動作しました。

レイアウト - >番号 - >フラットテキストを試してください。

(私はオランダ人だので、選択肢がわずかに異なる名前を付けることがあります - そのための謝罪)

+0

を入れて、同等のFORMAT >> NUMBER >> PLAIN TEXTだろう。私はそれらをすべてプレーンテキストに設定していますが、分割関数が使用されているときに番号とテキストを分割すると、10-09を数値として扱い、43017に変換します。 – User125

+0

'SPLIT(TEXT(A1) ""))? SPLITの後の最初の項目を取得するには、 'INDEX(SPLIT(A1;" ")、0、-1)' – Nietvoordekat

+0

を試してください。TEXTには 'format'が必要です。 。しかし、あなたが意味していたのは、まだ乱数が吐き出されているSPLIT(T(A1)、 "")だと思います。私がインデックスを使用する場合、それは1列を吐き出すだけで、3つすべてが必要です。 私が気づいたのは、列が自動に設定されている場合、数値は正しく分割されますが、日付だと考えられます。私はそれを平文に戻すと(コピー/貼り付けのたびに起こりますが、5桁の数字が吐き出されます)、ハイフンは日付だと思うようになり、グーグルシートを得ることができません。デフォルトの動作ではありません – User125

0

これは、これら2つのユーザー定義関数で動作します。住所がA1であると仮定します。 B1プットで

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 
} 

は= NBR(A1)及びC1には、米国で私にとって=ストリート(A1)

+0

これは動作確認できます。また、あなたは明らかにあなた自身の機能をGoogleスプレッドシートに書くことができます。毎日何かを学んでください:) – Nietvoordekat

関連する問題