From e7ac90d4b4cae0ef71908bd6d0a22cf2b39d55c8 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期五, 28 六月 2024 15:59:27 +0800
Subject: [PATCH] 添加公式

---
 src/util/excelFountion.js |   89 +++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 82 insertions(+), 7 deletions(-)

diff --git a/src/util/excelFountion.js b/src/util/excelFountion.js
index de10531..626ef6f 100644
--- a/src/util/excelFountion.js
+++ b/src/util/excelFountion.js
@@ -1,5 +1,10 @@
 
-
+/**
+ * 璁$畻澶氫釜鏁板�肩殑鍜�
+ *
+ * @param val 鏁板�煎瀷鍙傛暟锛屽彲鍙橀暱鍙傛暟鍒楄〃
+ * @returns 杩斿洖鎵�鏈夊弬鏁扮殑鍜岋紝濡傛灉鍙傛暟鍒楄〃涓虹┖鎴栧弬鏁扮被鍨嬮潪鏁板�煎瀷锛屽垯杩斿洖null
+ */
 function SUM(...val){
   let num = null;
   if(val&&val.length>0){
@@ -9,6 +14,12 @@
   }
   return num;
 }
+/**
+ * 璁$畻浼犲叆鍙傛暟涓殑鏈�澶у��
+ *
+ * @param ...val 鍙彉鍙傛暟鍒楄〃锛岀敤浜庤绠楁渶澶у�肩殑鏁板�兼垨鍙浆鎹负鏁板�肩殑绫诲瀷
+ * @returns 杩斿洖鏈�澶у�硷紝濡傛灉鍙傛暟鍒楄〃涓虹┖鎴栦负null/undefined/''锛屽垯杩斿洖null
+ */
 function MAX(...val){
   let max = null;
   if(val&&val.length>0){
@@ -21,6 +32,12 @@
   }
   return max;
 }
+/**
+ * 璁$畻浼犲叆鍙傛暟涓殑鏈�灏忓��
+ *
+ * @param val 鍙彉鍙傛暟锛岀敤浜庤绠楁渶灏忓�肩殑鏁板�兼暟缁�
+ * @returns 杩斿洖浼犲叆鍙傛暟涓殑鏈�灏忓�硷紝濡傛灉浼犲叆鍙傛暟涓虹┖鎴栨墍鏈夊�煎潎涓簄ull鎴栫┖瀛楃涓诧紝鍒欒繑鍥瀗ull
+ */
 function MIN(...val){
   let min = null;
   if(val&&val.length>0){
@@ -32,7 +49,12 @@
   }
   return min;
 }
-
+/**
+ * 璁$畻缁欏畾鏁板�肩殑骞冲潎鍊�
+ *
+ * @param val 鏁板�煎垪琛紝鍙寘鍚换鎰忎釜鍙傛暟
+ * @returns 杩斿洖骞冲潎鍊硷紝濡傛灉鏁板�煎垪琛ㄤ负绌烘垨鍖呭惈闈炴暟鍊奸」锛屽垯杩斿洖null
+ */
 function AVERAGE(...val){
   let num = null;
   let arr = [];
@@ -50,9 +72,41 @@
     return null;
   }
 }
-
+/**
+ * 璁$畻涓�涓暟鐨勭粷瀵瑰��
+ *
+ * @param val 浠绘剰鏁板��
+ * @returns 杩斿洖璇ユ暟鍊肩殑缁濆鍊�
+ */
 function APS(val){
   return Math.abs(val);
+}
+/**
+ * 璁$畻涓�缁勬暟瀛楃殑涓綅鏁�
+ *
+ * @param val 浠绘剰涓弬鏁帮紝闇�瑕佽绠椾腑浣嶆暟鐨勬暟瀛�
+ * @returns 濡傛灉鍙傛暟涓湁鏈夋晥鐨勬暟瀛楋紝鍒欒繑鍥炶绠楀嚭鐨勪腑浣嶆暟锛涘惁鍒欒繑鍥瀗ull
+ */
+function MEDIAN(...val){
+  let arr = [];
+  if(val&&val.length>0){
+    arr = val.filter(item=>item!=null&&item!=='')
+    const sortedArr = arr.sort((a, b) => a - b);
+    // 璁$畻涓綅鏁�
+    const half = Math.floor(sortedArr.length / 2);
+    if(arr.length>0){
+      // 濡傛灉鏁扮粍闀垮害鏄鏁帮紝鐩存帴鍙栦腑闂寸殑鍏冪礌
+      if (sortedArr.length % 2 === 1) {
+        return sortedArr[half];
+      } else { // 濡傛灉鏁扮粍闀垮害鏄伓鏁帮紝鍙栦腑闂翠袱涓厓绱犵殑骞冲潎鍊�
+        return (sortedArr[half - 1] + sortedArr[half]) / 2;
+      }
+    }else{
+      return null;
+    }
+  }else{
+    return null;
+  }
 }
 
 
@@ -123,7 +177,12 @@
   }
 }
 
-// 鑾峰彇鍙傛暟鍒楄〃
+/**
+ * 鏇存敼鍙傛暟
+ *
+ * @param f 鍙傛暟鍒楄〃
+ * @returns 杩斿洖涓�涓寘鍚潗鏍囦俊鎭殑鏁扮粍
+ */
 function changeParameter(f){
   let arr = getABCList(f)
   let arr2 = []
@@ -147,7 +206,12 @@
   })
   return arr2;
 }
-
+/**
+ * 鑾峰彇鍖呭惈 ABC 瀛楃鐨勫垪琛�
+ *
+ * @param f 瀛楃涓诧紝鍖呭惈闇�瑕佽В鏋愮殑鍏紡鎴栬〃杈惧紡
+ * @returns 鍖呭惈 ABC 瀛楃鐨勬暟缁勫垪琛�
+ */
 function getABCList(f){
   let regex = /[=\+\-\*\%\(\)\/\^\s]/g;
   let fouList = [
@@ -166,7 +230,12 @@
   });
   return arr;
 }
-
+/**
+ * 鑾峰彇鎵�鏈夊崟鍏冩牸
+ *
+ * @param f 琛ㄦ牸鏁版嵁鎴栫浉鍏冲弬鏁�
+ * @returns 杩斿洖涓�涓璞★紝鍏堕敭涓哄崟鍏冩牸鐨勫敮涓�鏍囪瘑绗︼紙鐢卞垪鍜岃ID鎷兼帴鑰屾垚锛夛紝鍊间负null
+ */
 function getAllCell(f){
   let arr = changeParameter(f)
   let arr0 = {}
@@ -176,7 +245,13 @@
   return arr0;
 }
 
-// 璁$畻鍏紡
+/**
+ * 璁$畻鍑芥暟
+ *
+ * @param f 瀛楃涓茬被鍨嬶紝琛ㄧず寰呰绠楃殑鍏紡
+ * @param comValue 瀵硅薄绫诲瀷锛岃〃绀鸿鏇挎崲鐨勫崟鍏冩牸鍊硷紝閿负鍗曞厓鏍煎悕绉帮紝鍊间负鏇挎崲鍚庣殑鍊�
+ * @returns 杩斿洖璁$畻鍚庣殑缁撴灉锛屽鏋滆绠楀け璐ュ垯杩斿洖0
+ */
 function compute(f,comValue){
   let str = f
   // 鑾峰彇鍗曞厓鏍煎搴斿��

--
Gitblit v1.9.3