我想转换一个 excel 文件的结构,以便我可以将它导入到需要以给定方式构建的系统中。
这是excel文件的一个小提取。有分类变量(例如Line of business)和四个虚拟变量(指示在给定流程中使用哪些数据类别)(例如Customer )的组合。
| Process name | Line of business | Customer | Potential customer | Employee | Vendor |
|--------------|------------------|----------|--------------------|----------|--------|
| Ad campaign | Marketing | x | x | | x |
| Payroll | HR | | | x | x |
我想要的是更改结构,以便为虚拟变量的每个变体创建一个新行,并使用一个应用/转置相关数据类别名称的数据类别列。所需的输出如下所示:
| Process name | Line of business | Data category |
|--------------|------------------|--------------------|
| Ad campaign | Marketing | Customer |
| Ad campaign | Marketing | Potential customer |
| Ad campaign | Marketing | Vendor |
| Payroll | HR | Employee |
| Payroll | HR | Vendor |
我尝试过的是制作一个 COUNTIF 语句来计算每行的“x”数。然后,我使用了一个 vba 脚本,该脚本为每个数据类别的变体创建了一个带有进程名称的新行。这是代码,脚本中的字母指的是 excel 中的列,所以 A 是进程名称列,G 是COUNTIF列,它创建了我需要的 n 行。
Sub KopyKat()
Dim N As Long, i As Long, K As Long
Dim v As String, kk As Long, m As Long
N = Cells(Rows.Count, "G").End(xlUp).Row
K = 1
For i = 2 To N
kk = Cells(i, "G").Value
v = Cells(i, "A").Value
For m = 1 To kk
Cells(K + 1, "H") = v
K = K + 1
Next m
Next i
End Sub
所以它从这个开始:
| Process name | Line of business | Customer | Potential customer | Employee | Vendor | COUNTIF |
|--------------|------------------|----------|--------------------|----------|--------|---------|
| Ad campaign | Marketing | x | x | | x | 3 |
| Payroll | HR | | | x | x | 2 |
对此:
| Process name | Line of business | Customer | Potential customer | Employee | Vendor | COUNTIF | Process name_2 |
|--------------|------------------|----------|--------------------|----------|--------|---------|----------------|
| Ad campaign | Marketing | x | x | | x | 3 | Ad campaign |
| Payroll | HR | | | x | x | 2 | Ad campaign |
| | | | | | | | Ad campaign |
| | | | | | | | Payroll |
| | | | | | | | Payroll |
这就是我有限的vba知识带我去的地方。我想更改代码以获得所需的输出。
提前致谢!


