gpt4 book ai didi

excel - 我需要在 Excel 工作表中获取 2 列,并将它们转换为以第 1 列作为标题的数据范围

转载 作者:行者123 更新时间:2023-12-03 01:51:44 26 4
gpt4 key购买 nike

我在Excel中有一些数据如下。它们作为列表分为两列。左列是员工姓名,第二列是时间/个人电脑。

Employee    Time/pc
TE 0.616438356
TE 0.581896552
FL 0.474040632
AD 0.473251029
AD 0.491803279
TE 0.616438356
TE 0.652173913
TE 0.575
CG 0.744680851
JU 0.784313725
JU 0.568181818
JU 0.709459459
JU 0.227272727
AD 0.461956522
AD 0.555555556
JU 0.014285714
JU 0.692307692

我需要轻松地将其转换为第 1 列用作标题的范围,我需要删除重复项。然后它需要列出每个名称旁边、每个名称下找到的所有值。

有人可以帮助我吗?

最佳答案

我对 VBA 相当陌生,但我正在尝试回答问题以支持社区。我欢迎对此代码进行任何/所有更正,但我测试了它。它有效并且满足了他们的要求。然而,它并未以任何方式、形状或形式进行优化。

我将初始工作表命名为“RawData”,将新工作表命名为“NewData”

Option Explicit

Sub Pivot()
Dim i, m, q As Integer
i = 2
q = 3

Do While Sheets("RawData").Cells(i, 1).Value <> ""
If Sheets("NewData").Range("A1:ZZ1").Find(Sheets("RawData").Cells(i, 1), LookAT:=xlWhole) Is Nothing Then
If Sheets("NewData").Range("A1") <> "" Then
If Sheets("NewData").Range("B1") <> "" Then
Worksheets("RawData").Cells(i, 1).Copy
Worksheets("NewData").Activate
Cells(1, q).Activate
ActiveCell.PasteSpecial xlPasteValues
Worksheets("RawData").Cells(i, 2).Copy
Worksheets("NewData").Activate
Cells(2, q).Activate
ActiveCell.PasteSpecial xlPasteValues
q = q + 1
Else
Worksheets("RawData").Cells(i, 1).Copy
Worksheets("NewData").Activate
Range("B1").Activate
m = ActiveCell.Column
ActiveCell.PasteSpecial xlPasteValues
Worksheets("RawData").Cells(i, 2).Copy
Worksheets("NewData").Activate
Cells(2, m).Activate
ActiveCell.PasteSpecial xlPasteValues
End If
Else
Worksheets("RawData").Cells(i, 1).Copy
Worksheets("NewData").Activate
Range("A1").Activate
m = ActiveCell.Column
ActiveCell.PasteSpecial xlPasteValues
Worksheets("RawData").Cells(i, 2).Copy
Worksheets("NewData").Activate
Cells(2, m).Activate
ActiveCell.PasteSpecial xlPasteValues
End If


Else
Worksheets("RawData").Cells(i, 2).Copy
Worksheets("NewData").Activate
Sheets("NewData").Range("A1:ZZ1").Find(Sheets("RawData").Cells(i, 1), LookAT:=xlWhole).Activate
m = ActiveCell.Column
Worksheets("NewData").Cells(1, m).End(xlDown).Offset(1, 0).Activate
ActiveCell.PasteSpecial xlPasteValues
End If
i = i + 1
Loop
End Sub

关于excel - 我需要在 Excel 工作表中获取 2 列,并将它们转换为以第 1 列作为标题的数据范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39757578/

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