Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
住所から市区町村だけを抜粋したいと考えてます。
excelであればiserror関数とfind関数を用いて、
C2に市区町村以下の住所がある場合
=IF(ISERROR(FIND("市",C2))=FALSE,LEFT(C2,FIND("市",C2)),IF(ISERROR(FIND("区",C2))=FALSE,LEFT(C2,FIND("区",C2)),IF(ISERROR(FIND("町",C2))=FALSE,LEFT(C2,FIND("町",C2)),IF(ISERROR(FIND("村",C2))=FALSE,LEFT(C2,FIND("村",C2)),""))))
とすれば、
一部エラーが出ますが、ほぼ抽出できるのですが、
同じような関数をQlikでも組みたいのです。
ただし、iserror関数とfind関数がQlikSenseにないので、
他の方法をどなたかご存知でしたら、
ご教示いただけると幸いです。
QlikSenseを最近利用し始めたばかりで、
不明点が多々あるので、
よろしくお願いいたします。
エクセルの内容なら、以下の数式で大丈夫だと思います。
Mid(住所,1,FindOneOf(住所,'市区町村',1))
市区町村の文字が複数が混在している場合に、後ろまで取得する時は
Mid(住所,1,FindOneOf(住所,'市区町村',-1))
でいけます。
wakamatsu様
ご回答ありがとうございます。
Mid(住所,1,FindOneOf(住所,'市区町村',1))
で無事できました!
ちなみに、可能であればでよいのですが、
市川市や町田市等、市区町村に市区町村の文字が入っているものは
どのようにすれば、正式名で表示できますでしょうか?
そういった場合があると思って作成していたのが
Mid(住所,1,FindOneOf(住所,'市区町村',-1))
の方です(マイナスをつけると後ろからの検索になります)が、
これも'町’の後ろに、同様の文字が入るケースはありますね。
正確にとろうとすると、ネットなどで市区町村のリストを取得して
あてにいくしかないですね。
ただこの場合は、元の住所情報にきちんと都道府県情報がある事と、
市区町村リストに記載のある漢字と同じ文字で、住所が作成されて
いる事が重要です。
文字が違う場合、さらに精製リストなどの辞書を用意してReplace関数で
精製するといった作業が必用になってきます。
サンプル添付しておきます。
Senceを利用されていたんですね。
あまりSenceは詳しくないですが、[データ接続] - [接続の新規作成]で、
URL:http://www.soumu.go.jp/main_content/000562730.xls
名前:市区町村リスト
と登録しておいてから、下記を [データロードエディタ] へ貼り付けると、同様のデータが作成されると思います。
//:::::::: スクリプト ::::::::::::
WORK1:
LOAD * INLINE [
住所
東京都町田市1-1-2
千葉県市川市町田マンション202号室
];
Left Join
LOAD
"都道府県名
(漢字)"&"市区町村名
(漢字)" as 検索キー,
"市区町村名
(漢字)" as 市区町村名
FROM [lib://市区町村リスト]
(biff, embedded labels, table is H28.10.10現在の団体$);
WORK2:
LOAD 住所,
検索キー,
Index(住所,検索キー) as 検索結果
Resident WORK1
Where Len(市区町村名)>0;
DROP Table WORK1;
Data:
LOAD 住所,
Left(住所,Index(住所,検索キー)+Len(検索キー)-1) as 精製結果
Resident WORK2
Where 検索結果>0;
DROP Table WORK2;
wakamatsu様
返答が遅くなり申し訳ございません。
仰る通りSenseを利用しております。
こちらのスクリプトについて質問なのですが、
//:::::::: スクリプト ::::::::::::
WORK1:
LOAD * INLINE [
住所
東京都町田市1-1-2
千葉県市川市町田マンション202号室
];
というのは読み込む住所に他の市区町村の漢字を含むたとえば市原市等あった場合は、
上記の町田市や市川市のようにスクリプトを記入する必要があるということでしょうか?
いえ、WORK1の部分は、'市'や'町'が複数混在しているデータサンプルとして、作っただけです。
実際には、住所リストは、データベースかエクセルでお持ちだと思うので、下記の部分をお持ちのデータベースへ差し換えればそのまま利用できます。
【変更箇所】
LOAD * INLINE [
住所
東京都町田市1-1-2
千葉県市川市町田マンション202号室
];
サンプルファイル添付しておきます。