0

if、iferror、および Vlookup を含む数式を作成するという私のタスク

値を含む最後の行の終わりまで数式を適用する必要があります。

vlookup が NA をスローする場合、セルは空白にする必要があります。それ以外の場合、値は数値「1」に置き換える必要があります。

しかし、式を試したときにエラーが発生しています

Sub testt()

Dim l As Long

l = Sheets(1).Range("A1:A" & Sheets(1).Cells(Sheets(1).Rows.Count, "A").End(xlUp).Row).Count
    With Sheets("Sheet1")
        .Range("d1").Formula = "=IF(iferror(vlookup(c2,$D:$D,1,false),""),"",1)"
        .Range("d1").AutoFill Destination:=Range("d1:d" & l), Type:=xlFillDefault

    End With

End Sub
4

2 に答える 2

0

私の最初の考え... VBAでは、式に2つの「 for every 」を使用する必要があります...

また、IsError を使用しますか。

以下のように式を置き換えます

.Range("d1").Formula = "=IF(iserror(vlookup(c2,$D:$D,1,false)),"""",1)"

それ以外の場合は、発生しているエラーをお知らせください。

于 2012-12-29T16:52:08.117 に答える
0

問題は、式の IF 部分、特に論理テストにあると思います。スプレッドシートの IF 関数の式は次のとおりです。

=IF(logical_test, value_if_true, value_if_false)

論理テストは、(Excel ヘルプ ファイルから) TRUE または FALSE に評価できる任意の値または式です。たとえば、A10=100 は論理式です。セル A10 の値が 100 に等しい場合、式は TRUE と評価されます。それ以外の場合、式は FALSE と評価されます。

あなたの論理テストは単純です:

iferror(vlookup(c2,$D:$D,1,false),"")

おそらく次のようになります。

iferror(vlookup(c2,$D:$D,1,false),"") = ""

式を与える(「王の提案も」で):

"=IF(iferror(vlookup(c2,$D:$D,1,false),"""")="","",1)"
于 2012-12-30T02:54:44.940 に答える