提取单个单元格的内容并相应地分离和重命名?
Extract content of a single cell and separate and rename accordingly?
所以我有这个大 excel 文件,超过 7000 行,我需要做的是从列中的单元格中选取内容,例如 A2,并将其内容提取到 A3
内容是缩写,如 PRD 表示句点,或 CLS 表示 class,所有缩写都由下划线分隔,没有特定的顺序,例如 A2 可以只说 PRD 但 B2 会说 PRD_CLS_PPRD_ADVAN 然后在 C2
上回到 CLS_ADV
我需要的是从每个单元格中提取内容并将其放在另一个单元格中,缩写必须替换为它的原始单词所以应该说 PRD 而不是 PRD,或者 Class 而不是 CLS ,当有下划线时,应将其替换为斜杠。所以总的来说,当 B2 说 PRD_CLS_PPRD_ADVAN 那么 B3 应该说 Period/Class/Pre-Production/Advance
我已经尝试了很多方法来解决这个问题,使用 LEFT、RIGHT、EXTRACT,但都无济于事,如果有任何关于如何解决这个问题的建议,我们将不胜感激
'类似的东西应该让你开始
Public Sub convertCell()
Dim rowmax As Integer
Dim i As Integer
Dim j As Integer
Dim StrArray() As String
Dim wrds As Integer
'replace sheet1 by the name of you sheets
rowmax = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To rowmax
StrArray = Split(Worksheets("Sheet1").Cells(i, 1), "_")
wrds = UBound(StrArray)
For j = 0 To wrds
Worksheets("Sheet1").Cells(i, 2) = Worksheets("Sheet1").Cells(i, 2) & "/" & StrArray(j)
Next j
Next i
结束子
所以使用公式的基本方法:
C2 中的公式:
VLOOKUP(LEFT(A2,FIND("_",A2,1)-1),$E:$F,2,0)
单元格 E2 到 F5 包含缩写,根据需要扩大范围。
所以,更新,一直在玩
刚完成前两个,对数字 3 使用 mid(),对数字 4 使用 right。
因此,使用 find() 的方法略有不同:
C2 的公式:
IFERROR(IF(FIND($E,$A2,1)>0,VLOOKUP($E,$E:$F,2,0),"")&"/","")&IFERROR(IF(FIND($E,$A2,1)>0,VLOOKUP($E,$E:$F,2,0),"")&"/","")&IFERROR(IF(FIND($E,$A2,1)>0,VLOOKUP($E,$E:$F,2,0),"")&"/","")&IFERROR(IF(FIND($E,$A2,1)>0,VLOOKUP($E,$E:$F,2,0),""),"")
让你想想尾随的“/”...
所以我有这个大 excel 文件,超过 7000 行,我需要做的是从列中的单元格中选取内容,例如 A2,并将其内容提取到 A3
内容是缩写,如 PRD 表示句点,或 CLS 表示 class,所有缩写都由下划线分隔,没有特定的顺序,例如 A2 可以只说 PRD 但 B2 会说 PRD_CLS_PPRD_ADVAN 然后在 C2
上回到 CLS_ADV我需要的是从每个单元格中提取内容并将其放在另一个单元格中,缩写必须替换为它的原始单词所以应该说 PRD 而不是 PRD,或者 Class 而不是 CLS ,当有下划线时,应将其替换为斜杠。所以总的来说,当 B2 说 PRD_CLS_PPRD_ADVAN 那么 B3 应该说 Period/Class/Pre-Production/Advance
我已经尝试了很多方法来解决这个问题,使用 LEFT、RIGHT、EXTRACT,但都无济于事,如果有任何关于如何解决这个问题的建议,我们将不胜感激
'类似的东西应该让你开始
Public Sub convertCell()
Dim rowmax As Integer
Dim i As Integer
Dim j As Integer
Dim StrArray() As String
Dim wrds As Integer
'replace sheet1 by the name of you sheets
rowmax = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To rowmax
StrArray = Split(Worksheets("Sheet1").Cells(i, 1), "_")
wrds = UBound(StrArray)
For j = 0 To wrds
Worksheets("Sheet1").Cells(i, 2) = Worksheets("Sheet1").Cells(i, 2) & "/" & StrArray(j)
Next j
Next i
结束子
所以使用公式的基本方法:
C2 中的公式:
VLOOKUP(LEFT(A2,FIND("_",A2,1)-1),$E:$F,2,0)
单元格 E2 到 F5 包含缩写,根据需要扩大范围。
所以,更新,一直在玩
刚完成前两个,对数字 3 使用 mid(),对数字 4 使用 right。
因此,使用 find() 的方法略有不同:
C2 的公式:
IFERROR(IF(FIND($E,$A2,1)>0,VLOOKUP($E,$E:$F,2,0),"")&"/","")&IFERROR(IF(FIND($E,$A2,1)>0,VLOOKUP($E,$E:$F,2,0),"")&"/","")&IFERROR(IF(FIND($E,$A2,1)>0,VLOOKUP($E,$E:$F,2,0),"")&"/","")&IFERROR(IF(FIND($E,$A2,1)>0,VLOOKUP($E,$E:$F,2,0),""),"")
让你想想尾随的“/”...