首页
学习
活动
专区
圈层
工具
发布

VBA自定义函数:将字符串拆分成二维数组

标签:VBA,自定义函数 下面是在forum.ozgrid.com看到的一段VBA程序,值得参考,特辑录于此。 这个自定义函数将字符串拆分成二维数组。...在调用该函数时,只需指定字符串、希望生成的数组具有的列数以及用于将字符串转换为二维数组的分隔符。默认的分隔符是空格字符,但可以是想要的任何字符,它将计算所需的行数。...VBA自定义函数如下: Option Base 0 '将字符串转换为二维数组 - 默认使用空格作为分隔符 Public Function Str_2d(str As String, intCol, Optional...arrTemp, arrTemp2 Dim iCount As Integer Dim Row_Count As Integer Dim Col_Count As Integer '确定结果数组的大小和形状...iCount > UBound(arrTemp) Then Exit For Next Next Str_2d = arrTemp2 End Function 下面的过程调用上述函数进行测试

68410

VBA实战技巧05: 动态调整数组以存储所需数据

学习Excel技术,关注微信公众号: excelperfect 数组是一种常用的数据结构,可用来存储一组相同类型的数据,你可以将一个数组变量视为一个迷你的电子表格,通过引用数组中的位置来存储或者获取数据...解读|进阶篇(154):数据结构——数组常用操作示例代码 Excel VBA解读|进阶篇(155):数据结构——数组相关的函数 VBA进阶|数组基础01:用最浅显的介绍来帮你认识数组 VBA进阶|数组基础...分隔符是用于分隔数值的指定字符,例如CSV文件就是由逗号分隔的值组成的文件,我们可以将由分隔符组成的字符串拆分成数组。...Next rng '移除字符串末尾的分隔符(;|;) myString = Right(myString, Len(myString) - 3) '使用Split函数创建数组...MyArray = Split(myString, ";|;") End Sub 如果已经有一个带分隔符的字符串,那么可以使用代码很方便地将其拆分成数组: Sub PopulateArray4

4.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    不支持连续分隔符当作一个处理?这个方法很多人没想到!|PQ实战

    在做数据分列的时候,如果碰到分隔符连续出现的情况,比如用空格分列的时候,有的地方连续几个空格,那到底是分成几个,还是只当做一个来处理?...- 1 - 按数字到非数字转换拆分 显然,PQ里目前是没有直接设置相应选项的处理方式的,但是,我们可以换一个可能很多人没有想到的思路:连续分隔符的问题,跟按数字(分隔符)到非数字(分隔符)的转换不是一个道理吗...Step-01 按照从数字到非数字转换 Step-02 修改步骤公式 将两处”0”..”9” 改为 “ “(空格),将最后1个参数的内容{“姓名.1”,”姓名.2”}改为数字4 修改公式后即可得到想要结果...具体如下: Step-01 重复列 Step-02 按空格分列到行 Step-03 筛选去掉空内容 Step-04 分组统计行数 Step-05 统计最大值 通过上面的操作,即可得到最大会分成几列。...- 2 - 拆行后筛选再分组加索引透视 Step-01 重复列 Step-02 按空格分列到行 Step-03 筛选去掉空内容 Step-04 分组加索引 修改步骤公式如下: 展开得到添加好索引的结果。

    37610

    Excel: 使用 TEXTJOIN 与 FILTER 合并符合条件的数据

    Excel 提供的新函数 FILTER 可以根据布尔条件筛选出满足条件的数据数组,而 TEXTJOIN 函数可以将多个文本值按指定分隔符连接为一个字符串。...例如,传统的 VLOOKUP 函数只能返回第一个匹配项,而通过 TEXTJOIN 与 FILTER 的组合,可以将所有符合条件的记录合并输出,并用分隔符隔开。...在新版 Excel 中,FILTER 函数可以根据设定的条件返回满足条件的所有记录;TEXTJOIN 函数可以将这些记录按指定分隔符连接成一个字符串。...:该部分首先将姓名(A列)和年龄(B列)通过 & 操作符合并为类似“刘备(47)”的字符串数组,然后使用 FILTER 函数对这一数组进行筛选。...:TEXTJOIN 函数将过滤后的结果按指定的分隔符“、”合并为一个字符串。其中第二个参数 TRUE 表示忽略空值,确保只有筛选出的有效数据被连接。

    75710

    Tidyverse|数据列的分分合合,一分多,多合一

    excel分列可以解决,但是表达量数据较大,且excel容易产生“数据变形”。...二 合久可分-一列拆多列 使用separate函数, 将“指定”分隔符出现的位置一列分成多列 2.1 默认,不指定分隔符 data %>% separate(ID, into = c("Gene",...separate或者help(separate)查询帮助函数,发现"|"为特殊字符,可以使用"[|]"括起来或者"\\|": data %>% separate(ID, into = c("Gene1...2.4,按照第几个字符拆 根据第几个字符拆分,适合数据规整的,,, 可以用来将TCGA中的sampleID转为常见的16位,需要先转置 data2 %>% select(Gene1,contains...三 分久必合-多列合一列 使用unite函数, 可将多列按照“指定”分隔符合并为一列 data %>% unite(ID_new, ID:ID2, sep = "_") %>% head() ?

    4.1K20

    Excel VBA解读(155): 数据结构—数组相关的函数

    学习Excel技术,关注微信公众号: excelperfect VBA提供了一些内置函数,可以方便地生成或者处理数组。 Array函数 Array函数可以使用一组数据来填充数组。...Split函数 Split函数根据分隔符将字符串拆分成数组,例如代码: Dim str As String Dim MyArray() As String str= "红,绿,蓝,三原色" MyArray...与Array函数不同的是,Split函数创建的数组下标索引值总是从0开始,无论在代码模块顶部是否使用了语句Option Base 1。...在Split函数中使用的分隔符可以是我们通常认为的逗号(,)、冒号(:)、破折线(-)等,2也可以是字母或文字字符,例如代码: Dim str As String Dim myArray() As String...Join函数 Join函数使用指定的分隔符将数组中的各元素连接起来成为一个字符串,例如代码: Dim MyArray As Variant Dim str As String MyArray= Array

    1.7K30

    VBA数组(五)数组函数2

    1、参数expression必需,为String型,即要拆分成数组的字符串。 2、参数delimiter可选,参数为拆分的分隔符,如果省略则使用空格做为分隔符。...下面通过简单的示例来演示下,将“www.google.com”按“. ”来拆分。 示例中首先声明了Arr1为变体型变量,变量i为整形变量。...然后通过split函数将字符串www.google.com按.号拆分成数组,返回Arr1的一维数组。该数组一维的索引号下届为0。(这个不受Option Base语句的影响。)...Split函数第一个按"."字符拆开之后为“www”,后面一段整体"google.com"作为一个字符串,因为已经达到两个字符串。第二个"."不会再拆分。...Join函数 上面介绍Split函数是将字符串分割,然后返回一个一维数组。那么Join函数正相反,Join函数是将一个一维数组里的元素使用指定的分隔符连接成一个新的字符串返回。

    3.4K20

    Power Query技巧:更强大的拆分

    标签:Power Query 在Excel中,拆分是一项常见的任务,而Excel中的“分列”功能只能将单列文本拆分成多列。...如果想拆分并提取文本中的数字,或者将文本拆分成多行,那么使用Power Query是一个好的选择。 示例工作表如下图1所示。 图1 我们想要获取列B中的数字,有几种方法。...图5 6.在“按分隔符拆分列”中,“选择或输入分隔符”为“空格”,“拆分位置”为“最右侧的分隔符”,如下图6所示。 图6 7.单击“确定”,结果如下图7所示。...图7 下面,再尝试使用Power Query将文本拆分成多行,如上图1中的示例工作表,列A中单元格A1的数据为Excel和Power BI,想将其拆分成两行。...然后,单击“拆分列——按分隔符”。在“按分隔符拆分列”中,进行如下图8所示的设置 图8 结果如下图9所示。 图9

    2.7K50

    VBA实用小程序55: 计算一个或多个分隔符将字符串分隔成的文本块数

    学习Excel技术,关注微信公众号: excelperfect 下面的自定义函数:CountBlock函数,可以根据提供的一个或多个分隔符进行查找,得到这些分隔符将字符串分隔成的文本块数。...(strText, strChar) + 1 End If End Function 代码中,调用了TranslateString函数,将所有不同的分隔符转换为所提供的分隔符strDelimiter...则TranslateString函数将strText转换成: 完美:Excel:微信:公众号 然后,代码: iCountString(strText, strChar) + 1 使用iCountString...函数统计出strText中的strChar(即:)的数量,加1,得到文本字符串中被分隔符分成的文本块数,示例中得到4。...图2 CountBlock函数很巧妙,它没有像通常那样遍历,而是将文本字符串中不同的分隔符统一转换成分隔符参数中的第1个分隔符,然后通过计算这个分隔符的数量来得出分隔的块数。

    2.1K20

    PHP数组

    1 = SORT_NUMERIC:把每一项按数字进行处理 2 = SORT_STRING:把每一项按字符串进行处理 3 = SORT_LOCALE_STRING:按字符串处理 rsort()...> 函数会将数组逆向然后将数组逆向后的结果拷贝给变量,不会改变原有数组变量内容 explode():设置分隔符 主要是将大量的字符串按照规定的分隔符,单一存入数组中 array explode(string...separator , string string [, int limit]); 第一个参数是指定的分隔符,第二个参数是字符串内容(数组中的字符串) 函数可以将key变为一个标量变量,由此可以通过访问变量的方式访问key对应的value extract(array var_array [, int txtract_type...] [, string prefix]); 函数的作用就是通过一个数组拆个年间一系列的标量变量,这些标量就是数组中的key,而变量就是数组中key对应的value <?

    8.5K20

    「Sqlserver」数据分析师有理由爱Sqlserver之六-让Sqlserver拥有字符串聚合函数

    在数据处理过程中,有一需求也是经常性遇到:对字符串的聚合操作,一般来说,聚合类函数只会在数值类型上进行计算,但有时为了人的阅读需求,将字符串进行聚合操作,得到一个用于备注性的信息查阅,还是有必要的。...在一个常见的场景中,不同用户分别购买过哪些的订单,将其所有订单号合并起来展示,这样的需求,就类似于将不同客户的购买数量汇总一样,只是后者是可真实地相加的汇总,前者是字符串的拼接,中间一般用分隔符隔开方便阅读...字符串函数安装 当安装成功后,在【可编程性】=》【函数】=》【聚合函数】的位置会出现本篇所提供的4个自定义函数。...自定义函数所在位置及参数调用 4个函数其实都是实现字符串聚合的效果,区别在于,若需要对聚合的字符串进行排序,可以传入排序的依赖列,而依赖列的数据类型不同,所需要使用的函数也不同(水平有限,只能实现到这个地步...自定义函数有去重效果 最后也演示下官方的单行拆多行的效果 官方拆解函数 结语 本篇带领大家领略Sqlserver的CLR开放接口,让.NET的能力可以在Sqlserver得到延伸,区别于正则函数属于标量函数

    1.3K20

    按键精灵——数组的应用(二)

    、UBound、LBound,这期我们继续将另外两个函数,Split函数和Filter函数。...1 Split函数 这个Split函数,软件中语法介绍是这样写的:返回基于 0 的一维数组,其中包含指定数目的子字符串。 简单一点讲,就是针对一维数组量身定制的函数。...但是呢,它有一个很强大的功能,就是可以把一个变量拆分成一个数组,很cool有木有 ?...txt中共4行内容,弹窗每行中间有个竖线分隔符,注意末尾的地方也有一个。换句话说,Text被竖线分隔符切割成了5段,只不过前面4段里有内容,最后一段为空。...隐隐的觉得Filter是一个非常牛逼的函数,因为Python中Filter是可以把过滤条件设置为函数名,比如写一个筛选偶数的函数,直接把“小明”替换成函数名,是可以直接过滤出数组中的偶数的。

    5.9K20

    Python进阶之NumPy快速入门(三)

    数组操作 我们将数组操作分成以下几种类型,然后分别介绍 数组变形 数组翻转 数组连接 数组分割 数组变形 可以实现数组变形的函数有好几个: reshape,最常见的也是最主要的数组变形函数。...如果order='F',就是按列展开;如果order='C',就是按行展开。 ravel,它和flatten功能其实差不多,可以将高维数组展开成一维。...hstack函数,它是stack函数的变种,其中h的意思是horizontal,水平的。顾名思义,它会将数组按水平的方式连接。关键是hstack不像stack一样增加维度,这一点是很好的。...因此学会常用NumPy字符串函数是很有必要的。 字符串连接 负责字符串连接的有两个函数, 第一个是加法add函数,字符串加法其实就是连接,将两个字符串数组中的字符串连接在一起。...我们介绍两种分割函数,它们复制不同尺度: 第一个是split函数,通过指定分隔符对字符串进行分割,并返回数组。分隔符的默认值空格。

    86020

    问与答61: 如何将一个文本文件中满足指定条件的内容筛选到另一个文本文件中?

    循环直至到达指定文件末尾 Do Until EOF(1) '读取文件中的一行并将其赋值给ReadLine变量 Line Input #1, ReadLine '将ReadLine...中的字符串拆分成数组 buf =Split(ReadLine, " ") '判断数组的第1个值是否处于60至69之间 '如果是则将其写入文件号指定的文件...由于文件夹中事先没有这个文件,因此Excel会在文件夹中创建这个文件。 3.EOF(1)用来检测是否到达了文件号#1的文件末尾。...5.Split函数将字符串使用指定的空格分隔符拆分成下标以0为起始值的一维数组。 6.Print语句将ReadLine变量中的字符串写入文件号#2的文件。 7.Close语句关闭指定的文件。

    5.4K10

    【Excel新函数】动态数组系列

    近年Excel提供了动态数组运算能力和一系列相关函数,能够类似于Power BI那样,直接在行列层级运算。一方面节省了公式填充复制的工作量,另一方面为更复杂的计算提供了可能性和便捷性。...=A3:A5*B2:D2 二、支持版本和函数功能 目前下列版本的Excel支持使用动态数组: Excel 365 for Windows Excel 365 for Mac Excel 2021 Excel...SORT - 按指定列对一系列单元格进行排序。 SORTBY - 按另一个范围或数组对一系列单元格进行排序。 RANDARRAY - 生成随机数数组。 SEQUENCE - 生成序列号列表。...TEXTSPLIT - 跨列或/和行按指定的分隔符拆分字符串。 TOCOL - 将数组或范围转换为单个列。 TOROW - 将范围或数组转换为单行。...但可以通过sort函数解决这个问题。 2. 无法删除结果数列中的任意值 动态数组生成的结果,是一个整体,无法像平常excel列那样,删除其中任意的值。 3.

    3.8K40

    Excel公式练习92:统计两个字符串共有的唯一字符数

    多一些练习,想想自己怎么解决问题,看看别人又是怎解决的,能够快速提高Excel公式编写水平。 本次的练习是:给定两个字符串,计算这两个字符串中共有的唯一字符数。...不区分大小写,即大写字母与小写字母没有区别,“A”和“a”等价,每个字符串中的字符可以按任意顺序出现。 示例数据如下图1所示。...公式中: MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1) 将单元格B2中的字符串拆分成单个字符组成的数组: {"S";"i";"m";"p";"l";"e"} 然后,SEARCH...函数在单元格A2中搜索这些字符: SEARCH({"S";"i";"m";"p";"l";"e"},A2) 返回由字符位置组成的数组: {10;2;#VALUE!...#N/A;#N/A;1}) 统计数组中数字的数量: 3 即为两个字符串共有的唯一字符数。

    1.1K30

    示例详解VBA的Split函数

    标签:VBA,Split函数 使用VBA时,有可能需要根据分隔符将字符串拆分为不同的部分。此时,就可以使用VBA的Split函数。...Split函数是ExcelVBA中的内置字符串函数,可用于根据分隔符拆分文本字符串。...如果是一个长度为零的字符串(“”),SPLIT函数将返回一个空数组。 2.参数Deimiter,可选,指定用于拆分“Expression”参数的分隔符。如果不指定此参数,则空格字符被视为默认分隔符。...由于未指定分隔符,因此将空格字符作为默认分隔符。 注意:VBA Split函数返回索引基于0开始的数组。此外,将Split函数的结果赋值给数组时,该数组必须声明为字符串数据类型。...在下面的代码中,Split函数基于逗号作为分隔符返回数组。

    8.7K20

    单列文本拆分为多列,Python可以自动化

    对于了解Excel并且倾向于使用公式来解决此问题的人,第一反应可能是:好的,我将创建一个可能包含FIND函数和LEFT函数或MID函数等的公式,然后向下拖动以将其应用于所有单元格。...一旦我们将Excel表加载到pandas中,整个表将成为pandas数据框架,“出生日期”列将成为pandas系列。因为我们不能循环,所以需要一种方法来访问该系列中的字符串元素。...图4 要在数据框架的列上使用此切片方法,我们可以执行以下操作: 图5 字符串.split()方法 .split()方法允许根据给定的分隔符将文本拆分为多个部分。...看一个例子: 图6 上面的示例使用逗号作为分隔符,将字符串拆分为两个单词。从技术上讲,我们可以使用字符作为分隔符。注意:返回结果是两个单词(字符串)的列表。 那么,如何将其应用于数据框架列?...我们想要的是将文本分成两列(pandas系列),需要用到split()方法的一个可选参数:expand。当将其设置为True时,可以将拆分的项目返回到不同的列中。

    8.1K10
    领券