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

时间:2015-06-03 13:38:07

标签: excel vba excel-vba

我的项目工作存在类似于下面描述的问题。

我的数据集是这样的 enter image description here

我想要的是这样的(最后一栏) enter image description here

我所拥有的是许多相同名称的列,例如" Is_paid"," Job"。 我想要的是创建一个新专栏" Tot",它结合了所有这些" Is_Paid"和"工作"以一种特殊的方式,

  1. 结合所有" Is_Paid"列进入" Is_Paid_total"
  2. 结合所有" Job"列进入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
    
  4. 结束如果 下一个Cel 结束 结束子

    步骤3将处于for循环

    我不知道如何合并/组合以获得Is_Paid_Total和Job_Total。 我也知道我写的if语句是错误的。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:2)

我想有人可以给你一个更好的答案,但是我能想到的最好的方法是满足你上次评论中的标准是将数据设置为如下表:enter image description here

“总计”列的公式为:

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

答案 1 :(得分:2)

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

你的上一栏应该有这个公式

from goose import Goose
list_of_urls = ['url1','url2','url1000'] #etc
g = Goose()
for url in list_of_urls:
     article = g.extract(url=url)
     article.cleaned_text
     #do more stuff

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

我认为你也可以在vba中使用range()。formula =" = ......" 然后使用所有范围的填充