0

完全なアドレスのリストがあり、それぞれが州の略語だけを取得したい独自のセルにあります。

  • セル1:345左Ln、どこにも、TX 340598
  • セル2:839 Right Dr、Glendale-NC 3498
  • セル3:0983 Alphabet St、マサチューセッツ州ボストン-23409

状態の略語を持つセルのリスト/範囲がありますが、各セルで50の略語すべてを検索して出力する方法がわかりません。検索置換のもう1つの問題は、上記の2番目の例の「Glendale」などのストリート名に州の略語であるが州ではないALが含まれているため、一部の略語がセルに自然に表示されることです。残念ながら、アドレスは統一された方法でフォーマットされておらず、句読点が全体で異なる可能性があります。

上記の例の2番目のアドレスのAL、NCの出力は問題ありません。これは、複数の状態が含まれるいくつかのケースを区別するのはそれほど難しくないためです。

4

1 に答える 1

1

あなたの例では、州の略語には常に両側にスペースがあるため、A2の住所とZ2:Z50の州の略語のリストを想定して、この式を使用できます

=LOOKUP(2^15,SEARCH(" "&$Z$2:$Z$50&" "," "&A2&" "),$Z$2:$Z$50)

数式を下にコピーして、すべてのアドレスの結果を取得します

住所の州の略語が常に大文字で、略語のリストが常に大文字である場合、FIND では大文字と小文字が区別されないため、「誤検知」の可能性が低くなるため、FIND 関数は SEARCH よりも優先されます。

アップデート:

あなたのコメントを考えると、状態の略語は大文字ではないかもしれませんし、どちらの側にもスペースを入れないかもしれません....しかし、おそらく「真の」状態はセル内の最後の一致になるでしょうか? それを取得するには、任意のバージョンの Excel でこの式を試してください

=MID(A2,MAX(IF(ISNUMBER(SEARCH($Z$2:$Z$50,A2)),SEARCH($Z$2:$Z$50,A2))),2)

....またはこれは Excel 2007 以降のバージョンの場合

=MID(A2,MAX(IFERROR(SEARCH($Z$2:$Z$50,A2),"")),2)

これらは、CTRL + SHIFT + ENTER で確認する必要がある「配列数式」です。数式をセルに貼り付け、F2 キーを押して数式を選択し、Ctrl キーと Shift キーを押しながら Enter キーを押します。正しく行われた場合、数式の周りに { や } などの中括弧が表示され、うまくいけば正しい結果が得られます。最初の数式に対してそれを行い、列を下にコピーします。

Excel 2010 を使用している場合は、次のように AGGREGATE 関数を使用して、配列以外の数式でより簡単に実行できます。

=MID(A2,AGGREGATE(14,6,SEARCH($Z$2:$Z$50,A2),1),2)

于 2013-01-21T20:35:51.793 に答える