問題
昨天韓老師寫了,后臺有留言:
要想列出每一位員工參與的項目名稱,怎么用公式實現?
如下工作表:
![]()
在右側表中F列,列出每位員工參與的項目名稱,怎么寫公式?
思路
查找E列每位員工姓名在B2:B15區域單元格中是否出現,如果出現,則將對應的項目名稱寫到F列相應單元格。
公式實現
在F1單元格中輸入公式:
=TEXTJOIN("、",TRUE,IF(ISNUMBER(FIND(D2,$B$2:$B$15)),$A$2:$A$15,""))按Enter鍵,得出第一位員工王一參與的所有項目名稱,將公式向下填充,得出其他員工參與的項目名稱。 如下圖:
![]()
公式解析
步驟1:FIND(D2,$B$2:$B$15)
作用:在B列查找員工姓名是否出現在各項目的參與人員名單中
返回值:包含14個元素的數組(對應14個項目)
找到:返回位置數字
未找到:返回錯誤值!
示例(對于"王一"),返回值為以下14個元素的數據:
{7,#VALUE!,#VALUE!,4,#VALUE!,#VALUE!,1,7,#VALUE!,#VALUE!,#VALUE!,1,#VALUE!,#VALUE!}步驟2:ISNUMBER(FIND(D2,$B$2:$B$15))
作用:將查找結果轉換為布爾值
返回值:由TRUE或者FALSE組成的14個元素的數組
{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→返回對應的項目名稱
如果為FALSE→返回空字符串""
返回值:包含項目名稱和空字符串的混合數組
{"項目1","","","項目4","","","項目7","項目8","","","","項目12","",""}步驟4:TEXTJOIN("、",TRUE,IF(...))
作用:連接數組成字符串
參數:
"、":分隔符(頓號)
TRUE:忽略空值
數組:上一步得到的項目名稱數組
返回值:用頓號連接的項目名稱字符串
最終結果:"項目1、項目4、項目7、項目8、項目12"
注意事項
TEXTJOIN函數,需要Excel2016或更新版本。
End
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.