Excel VBA合并/合并具有相同名称的列

我的项目工作有一个类似于下面描述的问题。

我的数据集是这样的 在这里输入图像说明

我想要的是这样(最后一列) 在这里输入图像说明

我有很多同名的专栏,比如“Is_paid”,“Job”。 我想要创build一个新的专栏“TOT”,它将所有这些“Is_Paid”和“Job”以一种特殊的方式结合起来,

  1. 将所有“Is_Paid”列合并到“Is_Paid_total”
  2. 将所有“作业”列合并到Job_total中

  3. 代码格式是(不正确)

    Private Sub CommandButton1_Click() Dim MyWorksheetLastColumn As Byte MyWorksheetLastColumn = Worksheets(1).Cells(1, Columns.Count).End(xlToLeft).Column Worksheets(1).Cells(1, MyWorksheetLastColumn + 1).Value = "Tot_Employment" Dim rngTemp As Range Set rngTemp=Cells.Find("*",SearchOrder:=xlByRows,SearchDirection:=xlPrevious) With rngTemp For Each cel In Range(Cells(1, 1), rngTemp) '****************MERGING STEPS********************** If cel.column(Is_Paid_total)="NonPaid" then Tot=Is_Paid else Tot=Job_total 

结束如果下一个Cel End With End Sub

第3步将在for循环

我不知道如何合并/获取Is_Paid_Total和Job_Total。 另外我知道我写的这个陈述是错误的。 请帮我解决这个问题。

我想有人可以给你一个更好的答案,但是我可以想到的最好的方式来满足你最后的评论中的标准是将数据设置为如下表格: 在这里输入图像说明

“总计”栏的公式是:

=IF(OR([@[is_paid]]="NonPaid",[@[is_paid2]]="NonPaid",[@[is_paid3]]="NonPaid"),"NonPaid",[@Job]&[@Job2]&[@Job3])

我有一个不同的公式,但想法几乎相同:

你最后一栏应该有这个公式

 IF(ISERROR(MATCH("NonPaid",$A2:$G2,0)),OFFSET(INDIRECT(ADDRESS(ROW($D2),MATCH("Paid",$A2:$G2,0))),0,1),"NonPaid") 

你需要适应它来满足你的列,在我的例子中,我的最后一列的数据是G,所以公式在H列。

我想你也可以在vba中使用range()。formula =“= ……”,然后使用所有范围的填充