0

私は基本的な財務スプレッドシートを持っており、これをさらに改良しようとしています。次のようなテーブルがあります。

| | 説明 | カテゴリー | 額

| | 2341234 チックフィレイ | 外食 | 5.89

| | 11234 レッドボックス/ジョージタウン | エンターテイメント | 1.21

そして、次のような別のテーブル:

| | 名前 | カテゴリー |

| | チックフィラ | 外食 |

| | レッドボックス | エンターテイメント |

最初のテーブルの最初の列で 2 番目のテーブルの最初の列から文字列を検索し、最初のテーブルの 2 番目の列に自動的に入力したいと考えています。{=find(2ndSheet!A:A,1stSheetA:A)} などを実行して文字列の位置を見つけることができると確信していますが、それに基づいて別のセルにデータを入力する方法がわかりません.

マクロである必要はありますか?

4

2 に答える 2

2

これは少し醜いですが、うまくいくようです。説明がルックアップ テーブルと必ずしも一致しない可能性がある状況を処理します (たとえば、Redbox | Redbox/Georgetown を使用)。[Lookup_Table]をルックアップ テーブルの絶対範囲に置き換え、配列数式 ( Control+Shift+Enter)として入力します。

=INDEX([Lookup_Table],MATCH(TRUE,NOT(ISERR((FIND([Lookup_Table],A2)))),0),2)

それが何をしているのかについて:

=INDEX(
        [Lookup_Table],
        MATCH(
            TRUE,
            NOT(ISERR((FIND([Lookup_Table],A2)))),
            0),
         2)

INDEX[Lookup_Table] を基本範囲とする数式を使用しています。行が一致するようにFIND、現在のセルを使用して数式を実行してもエラーが発生しないインスタンスを探します。の場合、 のRedboxような配列が得られます{#VALUE!, 7}。次に、エラーかどうかに基づいて値を に設定し、TRUE/FALSEエラーでないものが になるように反転しますTrueTRUE次に、その配列に対して条件を一致させます。ヒットすると、ルックアップ テーブルの行番号が返されます。次に、その行番号と列 2 を使用して、対応する値を見つけます。

繰り返しますが、それはきれいなものではありません (そして、おそらくすべてのケースを処理するためのより良い方法があります) が、3 行の非常に徹底的なテストではうまくいくようです :)

ここに画像の説明を入力

于 2012-08-18T15:11:27.470 に答える
0

最初のテーブルが列で始まると仮定すると、で始まるAこの数式を代入するとB2、値が見つかります。

=VLOOKUP(RIGHT(A2,LEN(A2)-FIND(" ",A2,1)),[Range of Helper Table],2,FALSE)

[Range of Helper Table]実際の範囲に置き換える必要があります。$を使用して絶対参照を使用するようにしてください。例:2ndSheet!A$2:B$20。コピーして貼り付けることができます。

于 2012-08-18T15:07:10.473 に答える