Board logo

標題: 請教字串中的資料如何比對而擷取相對欄位的資料? [打印本頁]

作者: lucky12345    時間: 2010-11-21 17:12     標題: 請教字串中的資料如何比對而擷取相對欄位的資料?

請教字串中的資料如何比對而擷取相對欄位的資料?
請看附檔.........謝謝指導
作者: oobird    時間: 2010-11-21 17:28

本帖最後由 oobird 於 2010-11-21 17:31 編輯

=INDEX(H$22:H$24,MATCH(TRUE,NOT(ISERROR(FIND(","&B10&",",","&G$22:G$24&","))),0))

[attach]3682[/attach]
作者: lucky12345    時間: 2010-11-21 17:53

回復 2# oobird

可以了......謝謝版主指導
作者: hljeang    時間: 2011-3-7 10:34

小學生無法下載學習,謝謝
作者: Andy2483    時間: 2023-5-12 16:23

謝謝論壇,謝謝各位前輩
後學藉此帖練習陣列與字典,學習方案如下,請各位前輩指教

執行前:
[attach]36352[/attach]

執行結果:
[attach]36353[/attach]


Option Explicit
Sub TEST()
Dim Brr, Crr, Y, Z, i&, T1$, T2$
'↑宣告變數
Set Y = CreateObject("Scripting.Dictionary")
'↑令Y變數是 字典
Brr = Range([B10], [B65536].End(3))
'↑令Brr變數是 二維陣列,以B欄儲存格值帶入
Crr = Range([H22], [G65536].End(xlUp))
'↑令Crr變數是 二維陣列,以G~H欄儲存格值帶入
For i = 1 To UBound(Crr)
'↑設順迴圈 (拆解組別對應成員(G欄),裝入Y字典中)
   T1 = Crr(i, 1): T2 = Crr(i, 2)
   '↑令變數承裝迴圈陣列值
   If (T1 = "") * (T2 = "") Then GoTo i01
   '↑忽略空格
   For Each Z In Split(T1, ",")
   '↑設逐項迴圈!令Z變數是 (G欄)值以","分割的一維陣列子
      If Z = "" Then GoTo z01
      '↑如果Z變數是空字元!就跳到z01標示位置繼續執行
      Y(Z) = T2
      '↑令以Z變數當key,item是T2變數(組名)
z01: Next
i01: Next
For i = 1 To UBound(Brr)
'↑設順迴圈 (將欲辨識的成員當key,查Y字典得到組名)
   Brr(i, 1) = Y(Brr(i, 1) & "")
   '↑令查Y字典得到組名覆蓋掉原來Brr的成員
Next
[L10].Resize(UBound(Brr), 1) = Brr
'↑令Brr陣列值從[L10]開始寫入儲存格中
Set Y = Nothing: Erase Brr, Crr
'↑令釋放變數
End Sub




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)