FR跨SHEET條件彙總

2021-08-17 06:11:41 字數 1096 閱讀 9078

表1

名字  數值

a        1

a        1

b        2

a        3

b        4

c        3

表2列1  數值

a       

sum('

a表'!b2[!0])bc

型別1: 表2列1與表1名字段長度相等

當sheet2表中列1按表1:名字列條件彙總且名字的長度一致時可用greparray(),left(item)取出與按列1相等的分類陣列

1.greparray('sheet1'!a1+'sheet1'!b1,left(item) == a1

greparray(sheet1!a1+sheet1!b1,b)當b為true或flase返回數值,left(item)==a1 代表取sheet1!a1+sheet1!b1的左邊第乙個字元比較是否等於表二中的a1

2.replace(greparray('sheet1'!a1+'sheet1'!b1,left(item) == a1),a1,"")

備註:該函式的是為了取出sheet1中a1列每組中的b1值

用空值替代a1的空值

2.eval("sum(" + replace(greparray('sheet1'!a1+'sheet1'!b1,left(item) == a1),a1,"") + ")")

備註:該函式是為了對sheel1中每組的值進行求和計算,

eval

返回表示式exp計算後的結果,

sum求和,

greparray

函式(返回true或者false)是條件,過濾此陣列,最後形成乙個新陣列,

left根據指定的字元數返回文字串中的第乙個或前幾個字元。

型別2:表2列1與表1名字段長度不相等

在原來的拼接基礎上新增特殊字元$  然後用find 取出$在字段中第一次出現的位置後減1,最後用left(item,取出位值-1)判定是否==a1

1.greparray('sheet1'!a1+"$"'sheet1'!b1, left(item, find("$", item) - 1)== a1

後的步驟參考型別1

Shell 條件判斷彙總

b file 若檔案存在且是乙個塊特殊檔案,則為真 c file 若檔案存在且是乙個字元特殊檔案,則為真 d file 若檔案存在且是乙個目錄,則為真 e file 若檔案存在,則為真 f file 若檔案存在且是乙個規則檔案,則為真 g file 若檔案存在且設定了sgid位的值,則為真 h fi...

Shell 條件判斷彙總

b file若檔案存在且是乙個塊特殊檔案,則為真 c file 若檔案存在且是乙個字元特殊檔案,則為真 d file 若檔案存在且是乙個目錄,則為真 e file 若檔案存在,則為真 f file 若檔案存在且是乙個規則檔案,則為真 g file 若檔案存在且設定了sgid位的值,則為真 h fil...

多個條件的模糊彙總

多個條件的彙總咱們經常遇到吧,今天的內容就是有關多個條件的計算。直奔主題,看下面的題目 在這個圖中,a列是 商的名稱,b列是 商的級別,c列是業務發生額。那麼,問題來了,請問 商名稱包含 廣州 級別為 一級 的業務發生額是多少?話說有了問題不用愁,條條大路通德州。使用的公式為 sumifs c2 c...