新特性介紹
“轉換單元格(Transform)” 功能允許用戶將自定義的單參數 LAMBDA 公式應用于選中的單元格區域。用戶可選擇公式參數的作用域 —— 按單元格、按行、按列或按整個區域。
轉換完成后,源單元格區域會被清空,轉換后的區域將應用到工作表中。轉換后單元格樣式保持不變,僅存儲的單元格值會發生改變。
在 V18.2 版本中,SpreadJS 設計器引入了全新的“轉換”功能,這一特性真正實現了 Lambda 函數與單元格選擇的無縫對接。借助該功能,用戶能夠直接將 LAMBDA 公式應用于選定的單元格范圍,并將原始內容替換為計算結果,將原本復雜的數據轉換過程簡化為一個簡潔的單步操作。
操作步驟
-
在普通工作表上選擇一個連續的單元格區域
-
右鍵單擊,選擇“轉換單元格”(Transform Cells)
-
在彈出的對話框中:
-
在“公式”(Formula)字段中輸入單參數LAMBDA公式。輸入過程中支持公式自動聯想提示
-
選擇所需的“作用范圍”(Scope)
-
點擊“確定”(OK)。原單元格區域將被清空,并替換為轉換后的數值,樣式保持不變。
示例 #1:按列對行業數據求和
-
源單元格區域:
-
公式:=LAMBDA(x, SUM(x))(SUM(x)即對x區域求和)
-
作用范圍:按列(By Column)
示例 #2:按單元格將文本轉換為大寫
-
源單元格區域:
-
公式:=LAMBDA(x, UPPER(x))(UPPER(x)即將x中的文本轉換為大寫)
-
作用范圍:按單元格(By Cell)
示例 #3:按分號和逗號拆分訂單詳情
-
源單元格區域:
-
公式:=LAMBDA(x, TEXTSPLIT(x, “;”, “,”))(TEXTSPLIT(x, “;”, “,”)即按分號和逗號拆分x中的文本)
-
作用范圍:按單元格(By Cell)
原始數據結構為3行2列。轉換后:
- 根據設定的拆分邏輯,每行最多擴展為2個子行,因此總行數變為3(原始行數)×2(每行最大擴展子行數)= 6行。
- 列方向上,內容拆分后重新整理為4列。
綜上,整個轉換過程會確保每行充分擴展,最終輸出6行4列的結果,系統地呈現所有拆分后的信息。
應用價值
在實際應用場景中,這一特性的優勢尤為明顯。比如在處理大量銷售數據時,我們可能需要對某一區域的銷售額數據進行單位轉換,從 “元” 轉換為 “萬元”。以往,我們可能需要在單獨的單元格中輸入轉換公式,然后復制公式結果并粘貼回原數據區域,操作步驟繁瑣且容易出錯。而現在,使用 V18.2 的“轉換”功能,我們只需選中需要轉換的銷售額單元格范圍,應用自定義的 LAMBDA 公式(如 “=LAMBDA(x,x/10000)”,該公式將輸入值除以 10000 以實現單位轉換),SpreadJS 便能立即用計算結果覆蓋所選區域,整個過程一氣呵成,大大提高了數據處理的效率和準確性。
不僅如此,在數據清洗和預處理階段,“轉換”功能同樣大顯身手。當面對包含各種格式不規范數據的單元格區域時,我們可以利用 LAMBDA 公式進行統一的格式調整。比如將日期格式不一致的單元格內容,通過自定義 LAMBDA公式轉換為統一的 “YYYY-MM-DD” 格式,確保數據的一致性和可用性。
注意事項
- 有效公式格式:=LAMBDA(x, <使用x的表達式>)
- 僅支持一個連續區域。
- 僅支持普通工作表區域——不支持報表、集算表、甘特圖、表格、數據透視表或數據區域。
- 當轉換生成動態數組結果時,輸出內容會根據所有轉換生成的最大行數和列數,自動填充到相鄰單元格中。詳情請參考示例3。
- 若轉換輸出內容超出當前工作表區域的邊界,超出部分將被截斷。