表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...