我需要您的帮助,我想检索单元格包含1的列的值,这里是一个示例:
图片
所需结果:
谢谢!
答案 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确认。
对于较早的版本,您可以将if分别用于和并置:
=MID(IF(A1=1,",A","") & IF(B1=1,",B","") & IF(C1=1,",C",""),2,100)
答案 2 :(得分:0)
我不清楚您的格式(您希望如何得到答案等),但这也许会对您有所帮助。 我假设您的标头位于单元格A1至C1中,然后您的数据位于单元格A2至C4中。您是否需要单元格D2到F4中的数据。
如果将以下内容复制到单元格D2中,然后使用拖动功能,它将产生您想要的结果。 = IF(A2 = 1,A $ 1,“”)
看看我在其中显示了公式的屏幕截图,然后在结果显示器中查看了另一个截图。
希望这有帮助---祝你好运!!!