このサイトのいくつかの提案の助けを借りて、いくつかのワークシートから取得する次の数式を取得しました。
=FILTER(VSTACK(FRR:SOD!G3:M200),
(VSTACK(FRR:SOD!K3:K200)<>"")*
(VSTACK(FRR:SOD!K3:K200)="ABC XXXX"))
「ABC XXXX」内で部分一致をフィルターする方法はありますか? ABC を場所、XXXX をその場所での職務/役職と考えてください。ABC に割り当てられた全員を新しいワークシートに引き出し、職務/役職でフィルターできるようにしたいのですが、それは可能ですか?
答え1
その方法の 1 つを以下に示します。
=LET(
α, VSTACK(FRR:SOD!G3:M200),
δ, INDEX(α,,5),
FILTER(α, (δ<>"")*(1-ISNA(XMATCH("ABC *",δ,2))),"Not Found"))
- 関数を使用すると
LET()
、変数を定義するのに役立ち、同じ数式を繰り返さずに読みやすくなります。 α
変数は、複数のシートのデータを1つのシートに追加して、シートのVSTACK()
範囲とG3:M200
FRR
SOD
δ
変数は、INDEX()
関数を使用し5th
て返された配列から抽出するように定義されています。α
XMATCH()
ワイルドカード演算子の使用Asterix
*Zero
は、任意の数の文字を意味します。このユースケースでは、 location が使用され、配列から同じ場所に割り当てられた任意の文字で始まり、任意の文字で終わるABC *
任意の場所がないかチェックします。ABC
job/position
δ
- 一致が見つかった場合は、
ISNUMBER()
を返すかTRUE
、を使用1-ISNA()
することもできます。どちらも同じことを行います。つまり、最初にエラーが発生した場所ISNA()
を返し、次に から減算して結果を得ます。これは、 で行うのと同じです。TRUE
#N/A
TRUE
ISNUMBER()
- 最後に、
FILTER()
関数内でラップして、 がある場所を抽出しますTRUE
。
ノート:
• Excelにはワイルドカード3枚数式で使用できるもの:
- アスタリスク(
*
) --> 0 個以上の文字。 - 疑問符(
?
) --> 任意の 1 文字。 - チルダ(
~
) --> リテラル文字 (~*
)、リテラル疑問符 (~?
)、またはリテラルチルダ (~~
) のエスケープ。
答え2
部分一致の場合、さまざまな組み合わせがあるはずですが、以下にその 1 つを紹介します。
=FILTER(VSTACK(FRR:SOD!G3:M200),
(VSTACK(FRR:SOD!K3:K200<>"")*
((ISNUMBER(SEARCH("NEW*", VSTACK(FRR:SOD!K3:K200)))) +
(ISNUMBER(SEARCH("*MANAGER", VSTACK(FRR:SOD!K3:K200)))) > 0))
- ここで、((ISNUMBER(SEARCH("NEW*"について説明します。
- ここで、NEW* 、、* はワイルドカード文字であり、1 文字以上を想定しています。
- ニューデリー、ニューヨーク、ニュージャージーなどの場所を想定できます。
- もう 1 つは (ISNUMBER(SEARCH("*MANAGER" で、*MANAGER は EDP MANAGER、SALES MANAGER などを表す場合があります。
注意
別のワイルドカード文字を使用することもできます ?必要に応じて。
さらにこのリンクを確認してください 。
答え3
皆さんの意見に感謝します。まだ少しずつ学んでいるので、少し複雑な部分もありますが。別のフォーラムのこの式はまさに私のニーズに応え、理解しやすいものでした。
=FILTER(VSTACK(FRR:SOD!G3:M200),LEFT(VSTACK(FRR:SOD!K3:K200),3)="ABC")
あなたのすべての協力に感謝します!