gpt4 book ai didi

excel - 如何在Excel中按类别分配 "type:value"格式的数据?

转载 作者:行者123 更新时间:2023-12-02 19:38:10 25 4
gpt4 key购买 nike

我正在对从站点解析的数据进行线性回归分析。我只能获取以下不方便的格式的数据:

第一列中的数据包含由“:”符号分隔的数据类型。例如:

Year:Storey:Area:Condition:Type:Name

第二列中的数据包含与第一列中的数据类型相对应的信息,也用“:”符号分隔:

2015:3:170:Renovated:TypeB:John
<小时/>

在我的 Excel 表格中,我有 13000 行,其中包含上述格式的此类数据。我想按为数据指定的类别对此数据进行分类。

为了澄清起见,我提供了来自以下位置的原始数据图片: enter image description here

我尝试将此数据转换为以下格式: enter image description here

<小时/>

我尝试使用分隔符将此数据拆分为列,但问题是数据类型的数量各不相同。 1 行可能有 5 个类别。另一行可能只有 2 个类别(数据类型)。

是否可以在 Excel 中对此类数据进行分类?

最佳答案

这应该可以满足您的要求:

Sub Andrey()
Dim catArr() As String
Dim resArr() As String
Dim lastrow As Long
Dim ows As Worksheet
Dim tws As Worksheet
Dim i As Long
Dim j As Long
Dim startrow As Long

Set ows = Sheets("Sheet9") ' change to where your data is
Set tws = Sheets("Sheet10") ' change to where you want your data

startrow = 3 ' Change to the first row with data

With ows
lastrow = .Range("A" & .Rows.Count).End(xlUp).Row
For i = startrow To lastrow
tws.Cells(i, 1) = .Cells(i, 1)
tws.Range(tws.Cells(i, "B"), tws.Cells(i, "G")).Value = "NULL"
tws.Range(tws.Cells(i, "B"), tws.Cells(i, "G")).Font.Italic = True
tws.Range(tws.Cells(i, "B"), tws.Cells(i, "G")).Font.Bold = False
tws.Range(tws.Cells(i, "A"), tws.Cells(i, "G")).HorizontalAlignment = xlCenter
catArr = Split(.Cells(i, 2), ":")
resArr = Split(.Cells(i, 3), ":")
For j = LBound(catArr) To UBound(catArr)
tws.Cells(i, WorksheetFunction.Match(catArr(j), tws.Range("A1:G1"), 0)) = resArr(j)
tws.Cells(i, WorksheetFunction.Match(catArr(j), tws.Range("A1:G1"), 0)).Font.Bold = True
tws.Cells(i, WorksheetFunction.Match(catArr(j), tws.Range("A1:G1"), 0)).Font.Italic = False
Next j
Next i
End With

End Sub

一些注意事项。

1) 您需要将数据类型作为标题放在要放置拆分数据的工作表的第一行中。

2)我使用了您示例中的行和列。如果不同,那么您将需要调整单元格引用。

编辑:我更改了上面的内容以添加“NULL”并将单元格格式设置为粗体和斜体,以更好地匹配您想要的内容。

关于excel - 如何在Excel中按类别分配 "type:value"格式的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34050467/

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