Excel1234 > qwer = false
では、しかし1234 < qwer = true
. C# で null 許容型を扱ったことがあるので、false
値を null と比較するときのように、両方のステートメントが返されることを期待しています。
その背後にある理論的根拠は何ですか?それはどこかに文書化されていますか?
私が最初に考えたのは、Excel は内部的に数値を文字列に変換してから文字列を比較するということでしたが、次のようになります。
'129 < '11a = false
- 左部分をテキストで入力した場合
129 < '11a = true
・左部分を数字で入力した場合
VBAvariant
での型比較は、スプレッドシートと同じように機能します
Sub CompareNumberAndText()
Dim a, b, c
at = "129"
an = 129
b = "11a"
ct = at < b 'false
cn = an < b 'true
End Sub
私は Excel セルに似た型のライブラリを開発しており、動作をできるだけ Excel に近づけたいと考えていましたが、これらの Excel の比較結果は直感に反しています。この場合、エラーをスローするか、false を返します。
列 AI で 2 つの数値 (たとえば P/E 比) を割って何らかの値を計算する仮想的な状況を想像できますが、負の EI の場合は「nm」と入力します。次に、BI 列で、P/E > some_value の場合、na の場合は true になります。演習が高価な株を見つけることである場合、収益がマイナスのものを表示することは、ある程度の (しかしほとんど) 意味がなく、さらに手動で行うのに役立つ可能性があります。 20株の場合は1株ずつ分析。しかし、2000 のものがあり、いくつかの集計を計算すると、これは見過ごされる可能性があります。