我有一张非常大的Excel表格,有2000行。
在表格中我有名字,旁边有很多名字" NO"和一个"是"。
每列都有不同的名称。
我想要一个宏,它会自动给我一张带有名称的表格,并在名称旁边是我有一个" YES"。
的列名。例如:
Name A B C D
God NO NO YES NO
Gosch YES NO NO NO
Josch NO YES NO NO
ME NO NO YES NO
应该是这样的:
姓名
God C
Gosch A
Josch B
ME C
答案 0 :(得分:3)
试试这个:
Sub Demo()
Dim srcSht As Worksheet, destSht As Worksheet
Dim lastRow As Long, i As Long
Set srcSht = ThisWorkbook.Sheets("Sheet3") 'change Sheet3 to your data sheet
Set destSht = ThisWorkbook.Sheets("Sheet4") 'change Sheet4 to your output sheet
With srcSht
lastRow = .Cells(.Rows.Count, "A").End(xlUp).row 'last row in source sheet using column A
destSht.Cells(1, 1) = "Name"
destSht.Cells(1, 2) = "Column"
For i = 2 To lastRow
destSht.Cells(i, 1) = .Cells(i, 1) 'enter name in output sheet
destSht.Cells(i, 2) = .Evaluate("=INDEX($B$1:$E$1,1,MATCH(""YES"",B" & i & ":E" & i & ",0))") 'enter column name in output sheet
Next i
End With
End Sub
您可以使用以下公式轻松完成此操作
在Cell G2
=INDEX($B$1:$E$1,1,MATCH("YES",B2:E2,0))
根据需要拖动/复制。见图片以供参考。