gpt4 book ai didi

excel - 如何从excel中的单元格中拆分内容

转载 作者:行者123 更新时间:2023-12-04 21:27:36 26 4
gpt4 key购买 nike

我想知道如何从内容中取出日期部分并将代码和日期拆分为单独的列。我给大家举个例子


A栏


东方/12 月 21 日/2020 年 12 月 30 日

TechSol/8/1-1-2021

东方/12/Jan/1-10-2021

AE-003/13-1-2021


我想得到这样的结果:


B列
C柱


东方/12 月 21 日
30-12-2020

技术溶胶/8
2021 年 1 月 1 日

东方/12/OCT
2021 年 1 月 10 日

AE-003
13-1-2021


组合单元格的格式总是像 Code / Date ,即代码始终与 <space> dash <space> 的日期分开.我想不出办法将它们分开。当我将文本用于字符为 / 的列时这样的破折号也出现在代码中。但是我使用固定宽度选项它仍然对我不起作用,因为这些都是不同的宽度。使用公式 =right不适合我,因为日期格式并不总是固定格式,例如,10 月 10 日将在 dd-mm-yyyy 中。但一位数的月份或日期将采用 d-m-yyyy 格式所以字符长度也不是固定的。
希望大家理解我的问题。我需要一个公式将它们分成不同的列。

最佳答案

请尝试下一个功能:

Function SplitTEXT(x As String) As Variant
Dim arr, sec As String
arr = Split(x, "/ "): sec = arr(UBound(arr)) 'split and memorize he last array element (date)
arr(UBound(arr)) = "###$" & arr(UBound(arr)) 'add a unusual string to the last array element
'in order to easily and faster replace it in the next line
'Create an array from joined array elements after replacing the last one and the last (memorized) element (date):
SplitTEXT = Array(Join(Filter(arr, arr(UBound(arr)), False), "/ "), sec)
End Function
可以通过以下方式对所有示例字符串进行测试:
Sub testSplitTEXT()
Dim x As String, arr
x = "Orient / 21/Dec / 30-12-2020"
'x = "TechSol/8 / 1-1-2021"
'x = "Orient / 12/Jan / 1-10-2021"
'x = "AE-003 / 13-1-2021"

arr = SplitTEXT(x)
Debug.Print arr(0), arr(1)
Range("B1:C1").value = arr
End Sub
您只能取消注释 x = ...线...
或者,使用下一种方法在每个 A:A 列值之间进行迭代,并根据您的要求进行拆分(在 B:C 列上):
Sub testSplitTIteration()
Dim i As Long, sh As Worksheet, lastR As Long

Set sh = ActiveSheet
lastR = sh.Range("A" & sh.rows.count).End(xlUp).row
For i = 2 To lastR
sh.Range("B" & i & ":C" & i).value = SplitTEXT(sh.Range("A" & i).value)
Next
End Sub

关于excel - 如何从excel中的单元格中拆分内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66813701/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com