網友想要由一個基本表(下圖右)中查詢在下圖左裡每個料號是否已登錄,還是為一個新產品?即只要比對前幾碼不符合者,就是一個新的料號,在新產品欄位中標示「NEW」。該如何處理?

【設計公式】

(1)

依據圖示,每個料號之後有一個「-」符號,用以找尋料號。

儲存格B2:=IF(COUNTIF($D$2:$D$25,LEFT(A2,FIND("-",A2)-1)),"","NEW")

FIND("-",A2):找尋「-」在儲存格內容中的第幾個字。

LEFT(A2,FIND("-",A2)-1):找出料號。

COUNTIF($D$2:$D$25,LEFT(A2,FIND("-",A2)-1)):判斷儲存格中的料號在料號資料表中出現的次數,如果為0,代表是一個未曾記錄的料號。

最後透過 IF 函數,將上式等於 0 者,標示「NEW」。

複製儲存格B2,往下各列貼上。

(2)

另,網友提到,由於料號資料表會一直新增資料,該如何修改公式?(如下圖)

如果要判斷的儲存格個數會變動,則需要藉助 COUNTA 函數來計算有幾個儲存格含有資料,再用 OFFSET 函數取得儲存格範圍。因此,公式修改如下:

儲存格B2:=IF(COUNTIF(OFFSET($D$2,,,COUNTA($D$2:$D$999),),
LEFT(A2,FIND("-",A2)-1)),"","NEW")

其中,假設料號中的儲存格數量不會超過 999 個。

複製儲存格B2,往下各列貼上。

【延伸閱讀】

Excel-利用時間清單計算時間總和

Excel-調整英文姓名表示

Excel-在一個時間字串的清單裡取出天數、時數、分數

Excel-限制儲存格的輸入內容

Excel-取出電子郵件地址的帳號和網域

Excel-如何將中文格式的天數和時間予以加總(SUBSTITUTE,MID,INT,MOD)

Excel-從字串中取出數字並轉換為日期(MID,DATE,TEXT)

Excel-將文字日期轉換為數值日期

Excel-以FILTER函數進行模糊篩選

Excel-列出區間範圍包含指定數值的清單(INDEX,OFFSET,ROW,IFERROR)

學不完.教不停.用不盡文章列表

arrow
arrow
    全站熱搜

    vincent 發表在 痞客邦 留言(8) 人氣()