找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
感激所有對伊莉作出奉獻的人搞笑、娛樂、精彩的影片讓你看你準備好成為出色的版主了嗎?
gemega 無officentrcosplayrpg
職場滿面naruto t性奴隷メ台灣帶空間穿

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[繁]非自願的不死冒險

[繁]葬送的芙莉蓮28-

[繁]歡迎來到實力至上

[繁]非自願的不死冒險

[BD繁]劇場版 少女與

✡ 斗破蒼穹 年番/鬥
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 4814|回復: 3

[求助] excel vlookup模糊比對[複製鏈接]

Rank: 1

帖子
66
積分
91 點
潛水值
17057 米
發表於 2017-2-15 12:53 AM|顯示全部樓層
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。
小弟最近得幫一堆住址分組,
例如了地址如下:
新北市泰山區黎明里1鄰泰林路二段*巷*號
新北市泰山區大科里10鄰仁愛路*巷*號*樓
新北市泰山區義仁里4鄰辭修路*號
新北市泰山區新明里18鄰民國街*巷*之*號
新北市泰山區貴賢里7鄰新生路*號
分類依據有的是比對到里,有的是必須比對到鄰,
如:
黎明里、大科里10鄰為A組,
義仁里4鄰、新明里、貴賢里7鄰為B組,
...
瀏覽完整內容,請先 註冊登入會員
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。

使用道具檢舉

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
155
積分
1291 點
潛水值
47805 米
發表於 2017-2-16 09:31 AM|顯示全部樓層
本帖最後由 tryit244178 於 2017-2-16 05:28 PM 編輯

查了一下,好像是比對文字的時候就會出包…
研究了好久。算了,搞不懂…自已寫一個比較快

貼到模組裡,儲存格裡打 =GetClass(B2,分組依據,2)
  1. Public Function GetClass(ByVal sourceRange As Range, ByVal seachRange As Range, ByVal column As Integer) As String
  2.     Dim i As Integer
  3.     Dim seachValue As String

  4.     GetClass = "#N/A"
  5.    
  6.     Select Case column
  7.         Case Is > seachRange.Columns.Count
  8.             GetClass = "#REF!"

  9.         Case Is <= 0
  10.             GetClass = "#VALUE!"
  11.                
  12.         Case Else
  13.             For i = 1 To GetLastRow(seachRange)
  14.                 seachValue = Left(sourceRange, Len(seachRange.Cells(i, 1).Value))
  15.                 If Not seachValue = "" And seachRange.Cells(i, 1).Value = seachValue Then
  16.                     GetClass = seachRange.Cells(i, column).Value
  17.                     Exit For
  18.                 End If
  19.             Next i
  20.     End Select
  21. End Function

  22. Private Function GetLastRow(ByVal sourceRange) As Integer
  23.     If sourceRange.Cells(sourceRange.Cells.Rows.Count, 1).End(xlUp).Row = 1 Then
  24.         GetLastRow = sourceRange.Cells.Rows.Count
  25.     Else
  26.         GetLastRow = sourceRange.Cells(sourceRange.Cells.Rows.Count, 1).End(xlUp).Row
  27.     End If
  28. End Function
複製代碼


有2點要注意:

第一,分組依據裡,得把前面的地址全部打進去
也就是你不能只打什麼什麼里,要打「新北市泰山區新明里」
像這樣才不會比對不出來

第二,把範圍比較小的排上面
像「新北市泰山區新明里11鄰」如果排在「新北市泰山區新明里」下面的話
就永遠不會抓到11鄰去

補充內容 (2017-2-16 05:25 PM):
哇咧!結果最後找到問題了…只要對 分組依據 做遞減排序就行了……真是浪費時間做白工…
...
瀏覽完整內容,請先 註冊登入會員

點評

tryit244178 我說的是 分組依據 裡的排序  發表於 2017-2-16 10:16 AM
tryit244178 用遞減排序就可以一次排完,不用手動來  發表於 2017-2-16 10:15 AM

使用道具檢舉

Rank: 1

帖子
66
積分
91 點
潛水值
17057 米
發表於 2017-2-17 12:39 AM|顯示全部樓層
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。
本帖最後由 zbc231 於 2017-2-17 12:45 AM 編輯
tryit244178 發表於 2017-2-16 09:31 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

查了一下,好像是比對文字的時候就會出包…
研究了好久。算了,搞不懂…自已寫一個比較快
...
瀏覽完整內容,請先 註冊登入會員

點評

tryit244178 1、可以在不同工作表。像這樣 =VLOOKUP(B2,Sheet2!A:B,2)。 2、我對excel不熟,所以這部份沒辦法為你解答。  發表於 2017-2-17 08:46 AM
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。

使用道具檢舉

Rank: 1

帖子
66
積分
91 點
潛水值
17057 米
發表於 2017-3-2 01:24 AM|顯示全部樓層
感謝你的幫忙,
我後來用公式將地址中的里和里鄰分兩格找出,
然後去完整比對,來進行分組活動。

分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部