在該網站的一些建議的幫助下,我從幾個工作表中得出了以下公式:
=FILTER(VSTACK(FRR:SOD!G3:M200),
(VSTACK(FRR:SOD!K3:K200)<>"")*
(VSTACK(FRR:SOD!K3:K200)="ABC XXXX"))
有沒有辦法過濾“ABC XXXX”中的部分匹配項?將 ABC 視為一個位置,將 XXXX 視為該位置的工作/職位。我希望能夠將分配給 ABC 的每個人拉到一個新的工作表中,然後按工作/職位進行過濾。那可能嗎?
答案1
這是一種方法:
=LET(
α, VSTACK(FRR:SOD!G3:M200),
δ, INDEX(α,,5),
FILTER(α, (δ<>"")*(1-ISNA(XMATCH("ABC *",δ,2))),"Not Found"))
- 使用
LET()
函數有助於定義變量,並且更容易閱讀,而無需重複相同的公式。 α
變數被定義為使用VSTACK()
它將多個工作表資料附加到一個由G3:M200
工作表FRR
和SOD
δ
變數被定義為使用函數從返回的數組中INDEX()
提取5th
α
XMATCH()
與通配符運算子一起使用Asterix
*表示Zero
任意數量的字元。在此用例中,它使用位置並檢查以數組中相同位置分配的ABC *
任何位置開頭ABC
和結尾的任何位置。job/position
δ
- 如果找到匹配項,那麼我們可以使用
ISNUMBER()
returnTRUE
或1-ISNA()
也可以使用它來執行相同的操作,即首先ISNA()
返回TRUE
錯誤,#N/A
然後從結果中減去,TRUE
這與使用相同ISNUMBER()
- 最後,包裝在
FILTER()
函數中以提取存在的位置TRUE
。
筆記:
• Excel 有3 個通配符可以在您的公式中使用:
- 星號(
*
) --> 零個或多個字元。 - 問號(
?
) --> 任一個字元。 - 波形符(
~
) --> 文字字元 (~*
)、文字問號 (~?
) 或文字波形符 (~~
) 的轉義。
答案2
Partial Match 的組合應該有很多種,,,,以下是我想跟大家分享的一種。
=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*、、*是Wild Card字符,假設多個字符。
- 它可能假設新德里、紐約、新澤西等地點。
- 另一個是 (ISNUMBER(SEARCH("*MANAGER" ),其中 *MANAGER 可能擔任 EDP 經理、銷售經理等。
注意
您可以使用其他通配符 ?根據需要。
另外檢查此連結 。
答案3
我感謝每個人的意見,儘管其中一些有點複雜,因為我仍在一點一點地學習。來自另一個論壇的這個公式完全符合我的需要,並且對我來說很容易理解:
=FILTER(VSTACK(FRR:SOD!G3:M200),左(VSTACK(FRR:SOD!K3:K200),3)="ABC")
感謝你的幫助!