空白スペースで区切られたセルごとに複数の参照を含むテーブルがあります。
参照ごとに1行を含む別のテーブルでは、VLOOKUPを使用して各参照にリンクされているコンポーネントの名前を取得します。
これが私の最初のテーブルの例です。
そしてこれが私が達成しようとしている結果です。
最初のテーブルのコンポーネント名を取得するために、参照のVLOOKUPを使用します。
コンポーネントに関連付けられている参照の数は一定ではないため、うまくいきません。
編集:
私はいくつかの制限がある部分的なワイルドカードの一致を用いる回避策を思いついた
VLOOKUP("*" & (table2 Ref) & "*", table1, 2, FALSE)
制限事項は以下のとおりです。
- 私の参照が例えばA011とA01のときに衝突があります。A011の参照がテーブルの中でより高い場合、A01を検索するとA011の結果が得られます。
- セルに256文字を超える文字が含まれていると、VLOOKUPは機能しません。 1セルあたり最大30個の参照があり、各参照には最大10文字(スペースを含む)を含めることができます。私は256文字を超えるセルを持っています。
この回避策により、参照列の長さが256文字未満になるように表1の行を分割し、衝突がないように参照規則を変更します(すべての参照を10文字でエンコードし、必要に応じて0で埋めます)。 )表1は多かれ少なかれ他のソフトウェアの抜粋であり、命名規則はファイルを保守するための理想的な解決策ではありませんが、現時点では機能します。他のどの解決策も歓迎されるでしょう。
表2はどのようなものですか?参照テキストを複数のセルに分割することから始めます。 support.office.com/en-us/article/…
—
mcalex
結果は表2のようになります。実際、私は(今まで)約100個のアセンブリ、1個から30個の参照を持つ1000個のコンポーネントを持っていたので、セルを分割したくないのです。
—
AdrienNK
2番目のテーブルのすべての参照レコードはすでに存在していて、1番目のテーブルからコンポーネント名を調べているだけなのでしょうか。
—
fixer1234
すみません、それははっきりしませんでした。私は手動でA01、B01およびA02がP0024の一部であり、私がコンポーネント名を取得したいと書いています(そして他のものも同じ数式を使用します)。質問で説明する予備的な回避策があります。
—
AdrienNK
あなたは配列式を使ってみるかもしれません、それらはVLOOKUPと同じ制限を持っていないかもしれません、しかし性能は遅くなることができます。またはマクロを使用してください。しかし、正直なところ、私が考える本当の解決策はデータ構造/ツールを変更することです。
—
Máté Juhász