IF ステートメントで SUBSTITUTE をネストできないのはなぜですか?

IF ステートメントで SUBSTITUTE をネストできないのはなぜですか?

この式のどこが間違っているのか分かりません。

=IF((SUBSTITUTE(ADDRESS(1,COLUMN(),4),"1",3)<Sheet2!$B$6))

基本(SUBSTITUTE(ADDRESS(1,COLUMN(),4),"1",3)的には、現在の列の文字の値 (例: 'B') を返します。末尾の 3 は行番号を返します。つまり、合計すると B3 になります。

これは短い日付型の日付です。次に、これも短い日付型である別の日付と比較されます。

この数式は機能しません。数式を次のように変更すると、

=IF((SUBSTITUTE(ADDRESS(1,COLUMN(),4),"1",3)<Sheet2!$B$6),true,false)

if 条件が満たされているかどうかに関係なく、 false を返します。

ご協力いただければ幸いです。

答え1

間接的「文字列アドレスをセル値と比較しています。

式を評価すると、基本的に次のようになります -

ここに画像の説明を入力してください

評価すると次のようになります -

ここに画像の説明を入力してください

If(string<value, true, false)

間接的に試すこともできます -

=IF((INDIRECT(SUBSTITUTE(ADDRESS(1,COLUMN(),4),"1",3))<Sheet2!$B$6),1)

セル内の値を他のセルと比較します -

ここに画像の説明を入力してください

答え2

使用しているテキストの内容を確認せずにSubstitute、次のいずれかを試してください。

=IF((SUBSTITUTE(ADDRESS(1,COLUMN(),4),"1","3")<Sheet2!$B$6),true,false)

=IF((SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,3)<Sheet2!$B$6),true,false)

文字列を検索して数値に置き換えているため、不機嫌になっている可能性があります。そうでない場合は、置き換えに使用しているテキストを投稿できますか?

関連情報