
この式は確かに機能しますが、非常に巨大です。
=IF(X3=B2,K2,IF(X3=B3,K3,IF(X3=B4,K4,IF(X3=B5,K5,IF(X3=B6,K6,IF(X3=B7,K7,IF(X3=B8,K8,IF(X3=B9,K9,IF(X3=B10,K10,IF(X3=B11,K11,IF(X3=B12,K12,IF(X3=B13,K13,IF(X3=B14,K14,IF(X3=B15,K15,IF(X3=B16,K16,IF(X3=B17,K17,IF(X3=B18,K18,IF(X3=B19,K19,IF(X3=B20,K20,IF(X3=B21,K21))))))))))))))))))))
これが何をやっているかです:
If X3 is the same as B2, show the contents of cell K2.
If X3 is the same as B3, show the contents of cell K3.
If X3 is the same as B4, show the contents of cell K4.
...etc etc etc all the way to...
If X3 is the same as B21, show the contents of cell K21.
B2:B21 は単なるセルの列であり、K2:K21 も単なるセルの列なので、上記の数式を短くして、長くなりすぎないようにする方法はありますか?
これを B 細胞と K 細胞の 2 つの範囲に変換する方法がわかりません。
次のようなことを試してもうまくいきません:
=IF(X3=B2:B21,K2:K21)
Excel で使用するように指示すると、 B2 から B21 までと K2 から K21 までのすべてを合計するように指示されるからです。Excelに各セルを合計するのではなく個別に処理するように指示する別の区切り文字 ( ではない) が:
あるのではないかと考えました。:
これは機能しません:
=IF(X3=B2-B21,K2-K21)
その結果は次のようになります。#VALUE!
問題は、B セルの数字が何であれ、K セルの対応する数字 (水平方向) と一致していなければならないことです。
答えを知っている方がいらっしゃいましたら、よろしくお願いします。Excel に機能があれば、きっととても簡単なはずです。
答え1
答え2
=VLOOKUP(X3;B2:K21;columns(B2:K2))
- B2:B21(範囲の最初の列)からX3̈́の値を検索します。
- 見つかったら、その右側の値 B2:K2-columns を選択して表示します。
...そして、はい、VLOOKUP はもう 1 つの引数を取ります。これは通常、関数名を入力しているとき、または F1 (ヘルプ) を押したときに表示されます。
その引数の既定値は であるTrue
ため、その場合は入力する必要はありませんが、最初の引数で正確な一致が必要な場合は、代わりにここで「False」と入力する必要があります。
周囲にを追加するIFERROR(...;"Not found")
と、「何も見つかりません」という表示が表示されます。
--- ファイル: example.csv --- 上記の X3 の代わりに M4 を使用
,,,,,,,,,,,, ,1,,,,,,,,,A,, ,2,,,,,,,,,B,,"=VLOOKUP(M4;B2:K21;10;False)" ,3,,,,,,,,,C,,5 ,4,,,,,,,,,D,, ,5,,,,,,,,,,E,, ,6,,,,,,,,,F,, ,7,,,,,,,,,,G,, ,8,,,,,,,,,,H,, ,9,,,,,,,,,,私,, ,10,,,,,,,,,J,, ,11,,,,,,,,,K,, ,12,,,,,,,,,L,, ,13,,,,,,,,,M,, ,14,,,,,,,,,N,, ,15,,,,,,,,,O,, ,16,,,,,,,,,P,, ,17,,,,,,,,,Q,, ,18,,,,,,,,,R,, ,19,,,,,,,,,S,, ,20,,,,,,,,,T,, ,21,,,,,,,,,U,,
答え3
少なくとも、余分な括弧は次のようにして取り除くことができます。IFS
:
=IFS(X3=B2,K2,X3=B3,K3,X3=B4,K4,X3=B5,K5,X3=B6,K6,X3=B7,K7,X3=B8,K8,X3=B9,K9,X3=B10,K10,X3=B11,K11,X3=B12,K12,X3=B13,K13,X3=B14,K14,X3=B15,K15,X3=B16,K16,X3=B17,K17,X3=B18,K18,X3=B19,K19,X3=B20,K20,X3=B21,K21)
IF
これは、異なる条件と結果に共通点がない場合でも、そのようなネストされた関数がある場合は常に機能する一般的な簡略化です。
しかし、あなたの場合はは条件に単純なパターンを追加し、さらに式を単純化することができます。XLOOKUP
:
=XLOOKUP(X3, B2:B21, K2:K21)
これはXLOOKUP
Excel 2021の新機能であり、Excelの古いバージョンでは動作しない可能性があります。それらのバージョンでは、次の方法で同じ結果を得ることができます。INDEX
そしてMATCH
たとえば、次のようになります。
=INDEX(K2:K21, MATCH(X3, B2:B21, 0))
または使用VLOOKUP
:
=VLOOKUP(X3, B2:K21, COLUMNS(B2:K2), FALSE)
ただし、サポートされている場合は、XLOOKUP
おそらくこの場合最も便利なソリューションであり、検索の実行方法と、完全一致が見つからない場合に何をするかを指定できるいくつかの追加パラメータもサポートされています。
(また、列ではなく行に沿って検索したり、検索列の左側の列から値を返したりする場合は、 INDEX
/MATCH
とソリューションを微調整する必要があるか、まったく機能しない可能性があることに注意してください。VLOOKUP
XLOOKUP
ただ働くいずれの場合も、可能であればそれを優先する十分な理由だと私は思います。