检索excel列的值

时间:2018-08-11 13:21:28

标签: excel

我需要您的帮助,我想检索单元格包含1的列的值,这里是一个示例:

图片

A | B | C | D

1 | 0 | 0 |

0 | 1 | 1 |

1 | 1 | 0 |

所需结果:

A | B | C | D

1 | 0 | 0 | A

0 | 1 | 1 | B,C

1 | 1 | 0 | A,B

谢谢!

3 个答案:

答案 0 :(得分:1)

这是一种适用于任意数量列的VBA方法:

Function SelectedColumns(R As Range) As String
    Dim i As Long, n As Long, count As Long
    Dim cols As Variant

    n = R.Columns.count
    ReDim cols(1 To n)
    For i = 1 To n
        If R.Cells(1, i).Value = 1 Then
            count = count + 1
            cols(count) = Split(R.Cells(1, i).Address, "$")(1)
        End If
    Next i
    If count > 0 Then
        ReDim Preserve cols(1 To count)
        SelectedColumns = Join(cols, ",")
    End If
End Function

将以上代码放入标准代码模块中。在您的示例中,如果您在单元格=SelectedColumns(A1:C1)中输入D1并向下复制,那么它将按预期工作。

答案 1 :(得分:1)

这是可以在Office 365 Excel中使用的TEXTJOIN公式:

=TEXTJOIN(",",,IF(A1:C1=1,{"A","B","C"},""))

这是一个数组公式,如果退出编辑模式时按Enter键,则必须使用Ctrl-Shift-Enter确认。

enter image description here


对于较早的版本,您可以将if分别用于和并置:

=MID(IF(A1=1,",A","") & IF(B1=1,",B","") & IF(C1=1,",C",""),2,100)

enter image description here

答案 2 :(得分:0)

我不清楚您的格式(您希望如何得到答案等),但这也许会对您有所帮助。 我假设您的标头位于单元格A1至C1中,然后您的数据位于单元格A2至C4中。您是否需要单元格D2到F4中的数据。

如果将以下内容复制到单元格D2中,然后使用拖动功能,它将产生您想要的结果。     = IF(A2 = 1,A $ 1,“”)

看看我在其中显示了公式的屏幕截图,然后在结果显示器中查看了另一个截图。

Formulars Displayed

Just the results

希望这有帮助---祝你好运!!!