私は、以下の例に有効な数式を見つけるのに苦労しています (疑問符を参照してください)。 私がやろうとしているのは、2 つのデータセットを結合することです。 問題は、共通の識別子が常にまったく同じではなく、それでもかなり似ていることです。 vlookup 関数を使用して、関数の最後の引数 (検索範囲) を true にするか、代わりに数値 2 を使用する (識別子に 2 を追加しようとして) ことを試みましたが、関数は最も近い識別子の値 (つまり 7800) を返します。
1番目のデータセット:
識別子 =>0000000161200103 価格 =>7787
識別子 =>0000000161200712 価格 =>7800
識別子 =>0000001961200803 価格 =>9000
2番目のデータセット:
識別子 =>0000000161200103 価格 =>7787
識別子 =>0000000161200801 価格 => ????? は、最も近い値 (7800) または #N/A を返します。
返される必要があるのは値です9000理想的には、vlookup が検索する検索値の範囲 (上方向または下方向) を何らかの方法で操作したり、完全に一致するものがない場合に検索値で次に何を行うかを操作したりする必要があります。おそらく、if 関数または isna の iferror を使用するのでしょうが、そこに到達できません。
試した関数は次のとおりです: =VLOOKUP($A2;A2:B4;1;TRUE) -> セル B3 を返します =VLOOKUP($A2;A2:B4;1;1) -> セル B3 を返します =VLOOKUP($A2;A2:B4;1;2) -> セル B3 を返します =IF(ISNA(VLOOKUP($A2;A2:B4;1;1;FALSE)) = TRUE; VLOOKUP(($A2+2);A2:B4;1;FALSE); VLOOKUP($A2;A2:B4;1;FALSE)) -> #N/A を返します
どのような助けでも大歓迎です!
答え1
4 番目の引数を 0 にして vlookup を実行できます。一致しない場合はエラーが返されます。これを if ステートメントでラップし、そこから何を行うかを決定できます。
if(vlookup("0011..",a1:a4,1,0),vlookup("0011..",a1:b4,2,0),..dosomethingelse..)