設為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

返回列表 發(fā)新帖
查看: 2153|回復: 4
打印 上一主題 下一主題

求助:提取字符串

[復制鏈接]
跳轉到指定樓層
1#
發(fā)表于 2017-3-9 17:35:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
提取字符串中包含“套”的字符串

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖 訂閱訂閱

點擊這里給我發(fā)消息

2#
發(fā)表于 2017-3-9 17:42:58 | 只看該作者
用VBA的話,
簡單的可以用instr 找到 套的位置,再用 instr 或 InStrRev  加開始位置 取前后空格的位置

用函數公式的話,等小妖或R大師回復了
3#
發(fā)表于 2017-3-11 01:35:07 | 只看該作者
如果是一個“套”,公式還是可以的。多個“套”的時候,因為沒法find到最后一個套附近的空格位置,只能VBA。代碼供參考。附件中已經創(chuàng)建了自定義函數。請啟用宏后運行。
  1. Function getTao(ByVal rng As Range) As String
  2.     Dim lngStart As Long, lngEnd As Long
  3.     Dim strGet As String
  4.     Dim lngFirst As Long, lngLast As Long
  5.    
  6.     '第一個套和最后一個套的位置
  7.     lngFirst = InStr(1, rng, "套")
  8.     lngLast = InStrRev(rng, "套")
  9.     '如果沒找到,返回空值
  10.     If lngFirst = 0 Then
  11.         strGet = ""
  12.     Else
  13.     '開始位置和最后位置。
  14.         lngStart = InStrRev(Left(rng, lngFirst), " ") + 1
  15.         lngEnd = InStr(1, Mid(rng, lngLast), " ") - 1 + lngLast
  16.     '返回字符串
  17.         strGet = Mid(rng, lngStart, lngEnd - lngStart)
  18.     End If
  19.     getTao = strGet
  20. End Function
復制代碼

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x

點擊這里給我發(fā)消息

4#
發(fā)表于 2017-3-30 09:39:34 | 只看該作者
由于存在字母間的空格,因而可以分2步走。
第1步,復制到word,查找替換如圖:

查找:([a-z,A-Z]) ([a-z,A-Z])
替換為:\1※\2
把字母間的空格替換為※

第2步,從word再貼回到Excel,輸入公式,用函數分列+VLOOKUP單列模糊查找
  1. =SUBSTITUTE(VLOOKUP("*套*",TRIM(MID(SUBSTITUTE(A2," ",REPT(" ",99)),99*{0;1;2;3;4}+1,99)),1,0),"※"," ")
復制代碼



【函數分列】+【Vlookup單列查找】的案例,可參考疑難千尋千解叢書《Excel 2013函數與公式》疑難136        如何將一個單元格內多個“字段”與內容進行分離

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x

點擊這里給我發(fā)消息

5#
發(fā)表于 2019-2-27 14:45:21 | 只看該作者
學習
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2024-10-23 06:32 , Processed in 0.140720 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表