1樓:匿名使用者
sub xabc()
dim s as string
dim i, k as integer
dim sht1, sht2 as excel.worksheet
set sht1 = sheets("sheet1")
set sht2 = sheets("sheet2")
k = len(sht2.cells(1, 1))
for i = 1 to sht1.[a65536].end(xlup).row
s = left(sht1.cells(i, 1), k)
if s = sht2.cells(1, 1) then sht2.cells(sht2.
[a65536].end(xlup).row + 1, 1) = sht1.
cells(i, 1)
if s = sht2.cells(1, 2) then sht2.cells(sht2.
[b65536].end(xlup).row + 1, 2) = sht1.
cells(i, 1)
if s = sht2.cells(1, 3) then sht2.cells(sht2.
[c65536].end(xlup).row + 1, 3) = sht1.
cells(i, 1)
next i
end sub
----------------------------------補充
還是應該用left,因為你的特徵值就是在前面,用find,或者instr,也得判斷是不是前面幾位相符,否則001.002.003,算哪組?
而且我用len取了特徵值的長度。就有了動態的意思,比如你的00,002,003可以是 0001,0002,0003,巨集都不用改。
如果你還有004,005,就是增加if的判斷而已,如果太多,就把這兒換成 select case,沒法自動去判斷你有幾個特徵值需要判斷的。
2樓:太極健
執行此巨集即得您的結果
sub 分類排列()
dim arr, arr1
dim ir&, x&, i&, y&
with sheets("sheet1")
ir = .range("a65536").end(xlup).row
arr = .range("a1:a" & ir).value
end with
redim arr1(0 to ubound(arr), 1 to 3)
for z = 1 to 3
arr1(0, z) = z
next z
for x = 1 to 3
i = 0
for y = 1 to ubound(arr)
if left(arr(y, 1), 1) * 1 = arr1(0, x) then
i = i + 1
arr1(i, x) = arr(y, 1)
end if
next y
next x
sheets("sheet2").range("a1").resize(ubound(arr1), 3) = arr1
end sub
如果sheet1表a列還有其他的資料,可修改一下**,來提取a列的不同資料,智慧增加類別。具體應根據您的**來寫**,因為您知道,**一般得根據您的具體情況而定。
如果只有此三類資料,用這個**就行了。
資料量大,要考慮執行速度,此**用陣列寫的,資料量大對速度沒有影響。
如何證明矩陣不同特徵值對應特徵向量線性無關,是不是很麻煩
用數學歸納copy法。一個特徵值對應的特徵向量線性無關。假設結論對k 1成立,則對k,設p1,p2,pk是對應於不同特徵值a1,a2,ak的特徵向量,令b1p1 bkpk 0,左乘a得,b1a1p1 bkakpk 0,第一式乘a1與第二式相減得b2 a2 a1 p2 bk ak a1 pk 0,由歸...
為什麼不同特徵值對應的特徵向量一定線性無關?還有怎麼判斷n階矩陣有n個線性無關的特徵向量
特徵值a的幾何重數就是 n r a ae 也就是齊次線性方程組 a ae x 0 的基礎解系所含向量的個數 幾何重數不超過代數重數 對於不同特徵值對應的特徵向量的無關性,直接用線性無關的定義,藉助vandermonde行列式即可 至於幾何重數的具體資訊,從jordan標準型裡直接可以讀出來 1.矩陣...
特徵值一定可以求出它對應的特徵向量嗎
一個矩陣的特徵值一定可以求出該特徵值對應的特徵向量。設 a 是n階方陣,如果存在數m和非零n維列向量 x,使得 ax mx 成立,則稱 m 是a的一個特徵值,非零n維列向量 x是矩陣a對應於特徵值m的一個特徵向量。根據矩陣特徵值和特徵向量的定義可知,如果可以存在特徵值m,那麼一定存在非零特徵向量x。...