3列のスプレッドシートがあります。列1は管轄区域タイプ(州、市、郡、地区)のリストであり、列2は対応する管轄区域の名前です。
列2の名前の一部を、列1の対応する「管轄タイプ」に応じて、列3に表示される文字列に結合する必要があります。
- 州と市の名前は変更されず、基本的に列3に再表示されます
- 郡名に都市を追加しています
- 郡名を地区名に追加しています。
- 「該当なし」が値の場合:州または市の場合、列3に表示されますが、文字列から「該当なし」を削除しています(したがって、郡名または地区名には追加されません) )。
私の式は:
=IF(A13="State", B13, IF(A13="City",IF(A13="NOT APPLICABLE", "NOT APPLICABLE", B13),IF(A13="County",IF(A13="NOT APPLICABLE", "NOT APPLICABLE", IF(VLOOKUP("City", A10:B13,2, FALSE)="NOT APPLICABLE", B13, VLOOKUP("City", A10:B13,2, FALSE) & " " & B13)),IF(A13="District",IF(B13="NOT APPLICABLE", "NOT APPLICABLE", IF(VLOOKUP("County", A10:B13,2,FALSE)="NOT APPLICABLE", B13, VLOOKUP("County", A10:B13,2, FALSE) & " " & B13))))))
私は上記を達成することができました、そして、すべては大丈夫に働いているようです。ただし、VLOOKUP
データの検索に使用した方法が心配です。これは非常に長いリストであり、数式を下にドラッグすると、VLOOKUP
範囲が変わります。したがって、たとえば、4行目の範囲はA2:B5ですが、下にドラッグするとA3:B6、A4:B7などになります。範囲を変更する方法があるかどうか疑問に思いますVLOOKUP関数で、または常に現在の行と前の3行だけを常に見るように式に指示するために別の関数を使用する必要がある場合。
これが私のスプレッドシートのサンプルです:
列を作成しようとしましたが、Stack Exchangeでそれを実行する方法がわからなかったため、スクリーンショットを作成しました。大丈夫だと思います。
これほど複雑なタスクについては、Excelでよく使用されるプログラミング言語であるVisual Basicを検討する必要があります。すべての行を反復処理する能力があるため、VLOOKUPを使用するリスクが軽減されます。すでに式にこれだけの時間を費やしている場合、それはあまり役に立たないことは知っていますが、次回は考えてみる価値があるかもしれません。
—
Sam3000
ありがとうございました!私はVisual Basicの経験がほとんどないので、通常の式でこれを達成できることを願っています。しかし、提案を本当に感謝し、VBをより速く学ぶために間違いなく一生懸命働きます...私はそれが非常に貴重になる多くのインスタンスに遭遇しました。乾杯。:-)
—
Zipotontic
市と郡の両方が該当しない可能性はありますか?この条件も考慮に入れる必要がありますか?
—
patkim