使用忽略虚假值子句的IF语句
我在Excel中有一个包含“是”和“否”的数据列表。使用忽略虚假值子句的IF语句
我需要一个IF语句,它只会对具有“是”值的单元格起作用,并跳过具有“否”值的单元格。
对于上下文来说,我的IF语句的'value if true'子句是一个indexmatchmatch,它需要根据“Yes”或“No”在表单中返回一个值。
我明白这可以有一个简单的解决方案使用VBA,所以如果任何人有一个基于Excel的解决方案或基于VBA的解决方案,他们也同样有帮助。
我可以添加列和行到我正在使用的数据集(如果需要的话)。
试试这个:
Sub YesNo()
Dim lRow As Long
Dim sht As Worksheet
Set sht = Worksheets("Tabelle1")
lRow = sht.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lRow
If sht.Cells(i, 1).Value = "True" Then 'Modify Column
'Your Code
End If
Next i
End Sub
使用VBA来实现它
在表假设,你有
A Yes
B Yes
C No
A Yes
B No
C Yes
A No
B No
运行宏后,表2将只有其中的那些行是在Sheet1中。请根据您的要求修改代码
Sub g()
Dim lastRow As Long
Dim sheet As Worksheet
Set sht = Worksheets("Sheet1")
Set sht1 = Worksheets("Sheet2")
lRow = sht.Cells(Rows.Count, 1).End(xlUp).Row
Dim j As Long
j = 1
For i = 1 To lRow
If sht.Cells(i, 2).Value = "Yes" Then
sht1.Cells(j, 1).Value = sht.Cells(i, 1).Value
j = j + 1
End If
Next i
End Sub
问题是,如果存在错误值,我想忽略它们并在列表中查找下一个“是”,并将indexmatchmatch应用于那 – FrasercT
如果我理解正确,你有一个列值为“是”或“否”的行列表,如果值为“是”,则在下一列中显示“indexmatchmatch”,否则为空。 = IF(
它们不是相邻的,我需要的是使用indexmatchmatch公式填充的列(没有间隙),但现在由于IF语句适用于“是”或“否”字段,所以我有空隙, IF语句正在提取“否”。如果我将IF语句应用于“否”,那么我的数据将会不一致。 – FrasercT
您试过自己的代码/研究?此外,更多的肉问题将有所帮助 –
我已经尝试过我自己的Excel解决方案,但我的VBA技能没有达到任务,我试过了,失败了。 – FrasercT
这不起作用? '= IF(A1 =“Yes”,,“”)' –
tigeravatar