sub 代替vlookup()
方法一:
dim d, ar, br, cr, wb as workbook
set d = createobject("scripting.dictionary")
br = worksheets("sheet1").[a1].currentregion '需要配置的資料表
ar = worksheets("r").[a1].currentregion '目標表
redim crr(1 to ubound(br) - 1, 1 to 1) '配置表的迴圈列數
for i = 2 to ubound(ar) '從目標表需要關聯的字段
d(ar(i, 4)) = ar(i, 6)
next
for i = 2 to ubound(br)
crr(i - 1, 1) = d(br(i, 4)) '將crr寫到brr表中
next
worksheets("sheet1").range("ej2").resize(ubound(br), 1) = crr '匹配
方法二:
dim arr, d as object, crr '
set d = createobject("scripting.dictionary")
arr = worksheets("基礎資訊表").[a1].currentregion
brr = worksheets("統計結果").[a1].currentregion
for i = 2 to ubound(arr)
d(arr(i, 1)) = arr(i, 6)
next
redim crr(2 to ubound(brr), 1 to 1) '匹配目標表內容
for j = 2 to ubound(brr)
crr(j, 1) = d(brr(j, 2))'''在字典裡查詢brr值並返回相應值
next
worksheets("統計結果").[c2].resize(ubound(crr) - 1, 1) = crr
set d = nothing
方法三:多列
dim arr, d as object, crr '陣列brr用來存放求和資料 '建立字典
set d = createobject("scripting.dictionary") '陣列賦值
arr = worksheets("基礎資訊表").[a1].currentregion '重置陣列brr大小
brr = worksheets("統計結果").[a1].currentregion
for i = 2 to ubound(arr)
d(arr(i, 1)) = arr(i, 6) & "," & arr(i, 7)
next
redim crr(2 to ubound(brr), 1 to 1)
redim drr(2 to ubound(brr), 1 to 1)
for j = 2 to ubound(brr)
if d(brr(j, 2)) <> "" then
crr(j, 1) = split(d(brr(j, 2)), ",")(0) '在brr裡查詢到此名,並返回對應值
drr(j, 1) = split(d(brr(j, 2)), ",")(1)
else
crr(j, 1) = ""
drr(j, 1) = ""
end if
next
worksheets("統計結果").[c2].resize(ubound(crr) - 1, 1) = crr
worksheets("統計結果").[d2].resize(ubound(crr) - 1, 1) = drr
set d = nothing
end sub
Python 利用字典合併檔案
這個要求是這樣的 將倆個檔案合併為乙個檔案,這倆檔案具有相同的第一列,合併後的檔案為 第一列只有一列 其他列追加,與下圖cc.txt 相同aa.txt1 44 2 65 3 64 4 43bb.txt1 54 2 66 3 68 4 49 importsys printsys.path 0 with...
利用字典管理使用者的登入資訊
我們用乙個程式用於管理使用者名稱和登入密碼的模擬登入資料系統,指令碼接受新使用者的資訊。登入使用者賬號建立後,已經存在的使用者可以用登入名字和密碼重返系統,新使用者則不能用別人的登入名建立使用者賬戶。coding utf 8 created on sun aug 20 20 43 01 2017 a...
Shell 程式設計 利用字典統計文字次數
csdn 問答上看到的乙個問題,有乙個 test.log 內容如下 a,e a,b,e b,c,e c,ec,d,ed,e統計規則是這樣的 每一行以逗號分割,如果第二個欄位為 e 就統計該行,否則將第乙個字段相同且第二個欄位不為 e 的行數累加。為了換換腦子 調節一下大腦思維,所以就花了點時間寫了下...