Excel 表格處理:欄位篩選異常

Excel 表格處理:欄位篩選

相關欄位篩選皆可正常輸出檔案。
唯篩選欄位與日期相關如下:
|Case issue date|Case Due date|Case close date|Case issue year|Case issue month|Case close year|Case close month|

就會出現異常。
有特別試過將資料格式改為文字,也是一樣NG。
image

Hi @poky.tsai ,

錯誤訊息是顯示element.Case issue year.includes 不是一個 function

原因

當 element.Case issue year 是空值(undefined)的時候,沒有 .includes() 這樣的 function 可以使用

解決方式

可以在您的第 12 行程式碼
image

加上一個判斷 element[‘Case issue year’] 非空值,改寫如下 :

if(element['Case BU'] && element['Case issue year'])
1 Like

測試後還是出現相同問題。
(只要不要選日期相關的,就正常)

Code
console.log(input);
input.forEach(element => {
if(element[“表單類別”]){ // 確認這是一個物件,而不是空值
if(element[“表單類別”].includes(“新材料”)||element[“表單類別”].includes(“技術專家”)||element[“表單類別”].includes(“技術服務”)) {
if(element[“Case BU”] && element[“Case issue year”]){ // 確認這是一個物件,而不是空值
if(element[“Case issue year”].includes(“2022”)){
output.push(element);
}
}
}
}
});
output.header.push(“表單類別”,“Case BU”,“需求簡述”,“姓名”,“部門”,“Case issue date”,“Case Due date”);
console.log(output);

截圖



image

Hi @poky.tsai,

看起來這個變數的型態應該不是「字串」,所以無法使用 .includes() 這樣的方法

可以把該變數轉為字串後,再使用 .includes() 的方法試試
第 11 行改寫為

if(String(element["Case issue year"]).includes("2022"))
1 Like

您好。
一開始就有試過將

  1. Excel 格式改為文字格式 → 還是出現相同的問題。
  2. 將該欄位 2022 該為 其他文字"" → 可正常輸出。但不符合需求

目前對策
改成 element[“Case issue year”]=2022 → 可正常輸出。
但是就無法使用在其他只有日期格式欄位,判定包含2022欄位的應用了。

1 Like