细胞内容:
Epson / Epson TM系列耗材/ H5000; Epson / Epson TM系列耗材/ H5200; Epson / Epson TM系列耗材/ U590; Epson / Epson TM系列耗材/ 930; Epson / Epson TM系列耗材/ U925; Epson /爱普生TM系列耗材/ U950
我需要使用以下规则拉出结果单元格:第一个单词,任何分号前的最后一个单词,重复,用分号替换逗号。可能有4个,27个或0个分号(或其间的任何数字)
上述字段将导致输出 爱普生H5000,爱普生H5200,爱普生U590,爱普生930,爱普生U925,爱普生U950
如果结果值以某种方式按字母顺序排序,那么疯狂的奖励积分和道具数量 IE: 爱普生930,爱普生H5000,爱普生H5200,爱普生U590,爱普生U925,爱普生U950
A列的长度约为28000。 B栏的结果很好。
如果有人对何处开始解决这个问题有任何想法,我已经没想过了。
答案 0 :(得分:1)
我假设你不能轻易地以其他格式获取数据。那将是最好的解决方案。
我还假设你的“单词”总是用斜杠分隔。在Excel中,我会为此任务编写VBA函数。像这样:
Option Explicit
Function GetPrinterModels(r As Range) As String
Dim arr() As String, arr2() As String
arr = Split(r.Value, ";")
Dim results() As String
ReDim results(0 To UBound(arr))
Dim i As Integer
For i = 0 To UBound(arr)
arr2 = Split(arr(i), "/")
' If words can also be separated by spaces:
'arr(i) = Replace(arr(i), "/", " ")
'arr2 = Split(arr(i), " ")
results(i) = arr2(0) & " " & arr2(UBound(arr2))
Next
GetPrinterModels = Join(results, ", ")
End Function
就排序而言,你是独立的。您希望在函数的最后一行调用results
之前对Join
数组进行排序。遗憾的是,VBA没有内置的Sort
功能,但是在线提供了大量现成的排序功能。