2017-05-25 91 views
0

我在Excel中有一個包含「是」和「否」的數據列表。使用忽略虛假值子句的IF語句

我需要一個IF語句,它只會對具有「是」值的單元格起作用,並跳過具有「否」值的單元格。

對於上下文來說,我的IF語句的'value if true'子句是一個indexmatchmatch,它需要根據「Yes」或「No」在表單中返回一個值。

我明白這可以有一個簡單的解決方案使用VBA,所以如果任何人有一個基於Excel的解決方案或基於VBA的解決方案,他們也同樣有幫助。

我可以添加列和行到我正在使用的數據集(如果需要的話)。

+1

您試過自己的代碼/研究?此外,更多的肉問題將有所幫助 –

+0

我已經嘗試過我自己的Excel解決方案,但我的VBA技能沒有達到任務,我試過了,失敗了。 – FrasercT

+0

這不起作用? '= IF(A1 =「Yes」,,「」)' – tigeravatar

回答

1

試試這個:

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 
1

使用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 
+0

問題是,如果存在錯誤值,我想忽略它們並在列表中查找下一個「是」,並將indexmatchmatch應用於那 – FrasercT

+0

如果我理解正確,你有一個列值爲「是」或「否」的行列表​​,如果值爲「是」,則在下一列中顯示「indexmatchmatch」,否則爲空。 = IF( =「是」,「indexmatchmatch」,「」)。您可以拖動所有行的公式。 –

+0

它們不是相鄰的,我需要的是使用indexmatchmatch公式填充的列(沒有間隙),但現在由於IF語句適用於「是」或「否」字段,所以我有空隙, IF語句正在提取「否」。如果我將IF語句應用於「否」,那麼我的數據將會不一致。 – FrasercT