Excel - 数据低于时返回列标题

时间:2016-05-17 16:17:18

标签: excel

我对此缺乏经验,但我很快就学会了。我是一名老师,被告知要记录学生全年参加的不同实地考察。我可以生成每个学生参加的旅行清单吗?

左下方的个别学生姓名,列包含旅行名称。如果他们参加了旅行,我会用“1”填充单元格。

screen shot of my excel document

HELP! : - )

2 个答案:

答案 0 :(得分:1)

这是一个非常简单的结构,你可以适应。列 A 包含学生姓名。行#1 包含实地考察(大多数是天王星的卫星,一个是到斯普林菲尔德)

enter image description here

运行这个短宏:

Sub TripTracker()
    Dim i As Long, j As Long, v As String
    For i = 2 To 6
        v = ""
        For j = 2 To 23
            If Cells(i, j) = 1 Then v = v & ", " & Cells(1, j)
        Next j
        Cells(i, 24).Value = Mid(v, 2)
    Next i
End Sub

将在 X 列中生成每个学生的旅行列表:

enter image description here

答案 1 :(得分:0)

这是没有必要的VBA的解决方案。

如果他们参加旅行,则不使用“1”填充单元格,而是使用“,”和旅行名称填充单元格。

您可以使用counta()计算每个学生的行程,然后连接表格右侧的每个单元格。

这将为您提供每位学生的旅行总和和一个方便的清单:

=Substitute(Concatenate(cell1, cell2...celln),",","",1)

这有点麻烦,因为您必须选择每个单元格连接第一行,但您可以将公式向下拖动以适用于所有行。这样可以轻松地将学生添加到列表中,只需拖动公式即可。

用ZLS替换第一个逗号将删除前导逗号。

Sample!