访问:将包含格式化字符串的列展开到多个列

时间:2018-04-27 02:34:04

标签: database vba ms-access access-vba ms-access-2010

我有以下表格数据:

原始数据:

Description
String A Q1FY18
String B Q1FY18, String B Q2FY18
String C Q4FY17, String C Q1FY18, String D Q2FY18
String E Q2FY18

我想将此列拆分为多列。目标数据框如下所示:

期望的输出:

Description  Period
String A     Q1FY18
String B     Q1FY18
String B     Q2FY18
String C     Q4FY17
String C     Q1FY18
String D     Q2FY18
String E     Q2FY18

我想到的是原始列是逗号分隔的,因此必须有一种方法来创建新列,方法是使用逗号分隔字符串作为分隔符。这一步看起来像这样:

第一步

Description  Period1 Period2
String A     Q1FY18
String B     Q1FY18  Q2FY18
String C     Q4FY17  Q1FY18
String E     Q1FY18  Q2FY18

下一步是折叠表以获得所需的输出。如果我可以使用其他工具进行数据操作(例如R或Python)会更容易,但由于最终用户的限制,这些在这种情况下不是一个选项。您将如何转换原始数据以获得所需的输出?有没有办法使用逗号分隔原始数据作为分隔符,并且有权访问自动确定它应创建的新列的数量?我很感激你的帮助!

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

Dim strArray() As String

   strTest = "String B Q1FY18, String B Q2FY18"
   strArray = Split(strTest, ",")

   For intCount = LBound(strArray) To UBound(strArray)
      Debug.Print Trim(strArray(intCount))
   Next