問題
昨天韓老師寫了,后臺有留言:
要想列出每一位員工參與的項目名稱,怎么用公式實現(xiàn)?
如下工作表:
![]()
在右側(cè)表中F列,列出每位員工參與的項目名稱,怎么寫公式?
思路
查找E列每位員工姓名在B2:B15區(qū)域單元格中是否出現(xiàn),如果出現(xiàn),則將對應(yīng)的項目名稱寫到F列相應(yīng)單元格。
公式實現(xiàn)
在F1單元格中輸入公式:
=TEXTJOIN("、",TRUE,IF(ISNUMBER(FIND(D2,$B$2:$B$15)),$A$2:$A$15,""))按Enter鍵,得出第一位員工王一參與的所有項目名稱,將公式向下填充,得出其他員工參與的項目名稱。 如下圖:
![]()
公式解析
步驟1:FIND(D2,$B$2:$B$15)
作用:在B列查找員工姓名是否出現(xiàn)在各項目的參與人員名單中
返回值:包含14個元素的數(shù)組(對應(yīng)14個項目)
找到:返回位置數(shù)字
未找到:返回錯誤值!
示例(對于"王一"),返回值為以下14個元素的數(shù)據(jù):
{7,#VALUE!,#VALUE!,4,#VALUE!,#VALUE!,1,7,#VALUE!,#VALUE!,#VALUE!,1,#VALUE!,#VALUE!}步驟2:ISNUMBER(FIND(D2,$B$2:$B$15))
作用:將查找結(jié)果轉(zhuǎn)換為布爾值
返回值:由TRUE或者FALSE組成的14個元素的數(shù)組
{TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE}步驟3:IF(ISNUMBER(FIND(D2,$B$2:$B$15)),$A$2:$A$15,"")
作用:條件提取項目名稱
邏輯:
如果為TRUE→返回對應(yīng)的項目名稱
如果為FALSE→返回空字符串""
返回值:包含項目名稱和空字符串的混合數(shù)組
{"項目1","","","項目4","","","項目7","項目8","","","","項目12","",""}步驟4:TEXTJOIN("、",TRUE,IF(...))
作用:連接數(shù)組成字符串
參數(shù):
"、":分隔符(頓號)
TRUE:忽略空值
數(shù)組:上一步得到的項目名稱數(shù)組
返回值:用頓號連接的項目名稱字符串
最終結(jié)果:"項目1、項目4、項目7、項目8、項目12"
注意事項
TEXTJOIN函數(shù),需要Excel2016或更新版本。
End
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.