Excel 2010 に 2 列の大きなテーブルがあります。列 A はユーザー、列 B はユーザーを招待した人です。ユーザー名は英数字で、数字だけのものもあります。最も初期のユーザーには招待者がいません。
User | Parent
-------------
AAA |
BBB |
CCC | AAA
DDD | BBB
EEE | DDD
FFF | DDD
GGG | FFF
HHH |
III | GGG
私がやりたいのは、祖父母(および曽祖父母以降)に移動できる式を用意することです。そのため、必要に応じて相対列と絶対列を混合して使用する式ベースのソリューションを見つけようとしています。 .
上記のチェーンは最大で 4 つになりますが、データ セットの深さは最大で 20 レベルを超えないと考える理由があります。これに到達する式または式の組み合わせを見つけたいと思います(そして、私が言ったように、それを超えて):
USER | PARENT | P2 | P3 | P4 | ...
AAA | |
BBB | |
CCC | AAA |
DDD | BBB |
EEE | DDD | BBB |
FFF | DDD | BBB |
GGG | FFF | DDD | BBB
HHH |
III | GGG | FFF | DDD | BBB
...
ユーザーID番号のキー行の有無にかかわらず、VLOOKUP、MATCH、およびINDEXコマンドを組み合わせたさまざまな方法を試しました(数値列のないソリューションのいくつかは、「0」が有効なユーザー名であるという事実に直面したときに失敗したためです) 、エラー トラップがより困難になります)。かなり確実に P2 に到達できますが、故障せずに P3 に到達することはできないようです。ちなみに、私が試した数式は、データが 400,000 行近くになるため、非常に CPU を集中的に使用しますが、計算時間はあまり気にしません。ブルート フォース メソッドが機能しません。スタックオーバーフローには似たような質問がいくつかありますが、それらはわずかに異なるものを求めており、私はそれらのどれも適応できませんでした.
これが標準関数を介して実行できる場合、来年この問題を再検討する必要があるときにそれを維持する能力が向上するため、計算時間が長くても、VBA (私はよく知らない) よりも望ましいでしょう。 .