2017-08-17 6 views
0

コールセンターから受け取った大きなアドレスリスト(約5000 /日)を含むカラムを持つ1日のCSVファイルがありますそれらの住所の中には、街の周辺の名前が含まれています。通常、最初の5文字です。 別のテーブルに私は1つの列にすべての近隣の正確な名前を持って、同じ行の別の列には、私はその近所で配信サービスを提供する宅配名を持っています。DAXパワークエリーからインポートされたカラムを別のテーブルのカラムと比較して同じ行の結果を返す

[住所]列&の各行を検索する方法を電源ピボットで探しています。近隣の名前に似た値が見つかった場合、その近隣の宅配便の名前がわかります。

This an example for my data sets, the fist sheet describes 5 sample of my daily data, and the second sheet is districts information and their courier ID

+3

希望する結果が得られているサンプルデータとサンプルを提供できますか? [最小限で完全で検証可能なサンプルを作成する方法](https://stackoverflow.com/help/mcve) – Joe

+0

こんにちは、私のサンプルデータへのリンクを使ってリクエストを編集しました –

答えて

0

免責事項 - この方法は、類似した単語を完全一致のみを扱いません。

私が見つけた最も簡単な方法は、計算されたテーブルを作ることです。モデリングタブで、新しいテーブルをクリックし、この数式を入力します。

Results = SELECTCOLUMNS(
    FILTER(CROSSJOIN(Addresses, Couriers), SEARCH(Couriers[District], Addresses[Address], , -1) > 0), 
    "Address", Addresses[Address], 
    "CourierID", Couriers[Courier ID] 
) 

このクロスは2つのテーブルを結合し、結果を「Couriers」テーブルの「District」が「Address」にある場所に限定してフィルタリングします。免責条項で述べたとおり、これは正確なマッチを探しているだけです。

Results table

次に、この式で新しい列を追加し、アドレステーブルにそれを取り戻すため。これは、作成したテーブルのアドレスを検索し、Courier IDを返します。

CourierID = LOOKUPVALUE(
    Results[CourierID], 
    Results[Address], 
    Addresses[Address] 
) 

Results

LOOKUPVALUE関数は式を取ることができないので、我々は2つの段階でこれを行うために必要な理由はあります。

関連する問題