Commit 53d363ba authored by GoshaZotov's avatar GoshaZotov

modify COUNTIF formula

parent 718e41f2
...@@ -5797,7 +5797,11 @@ function parseNum( str ) { ...@@ -5797,7 +5797,11 @@ function parseNum( str ) {
var res = false, rS; var res = false, rS;
if (cElementType.string === y.type) { if (cElementType.string === y.type) {
if ('<' === operator || '>' === operator || '<=' === operator || '>=' === operator) { if ('<' === operator || '>' === operator || '<=' === operator || '>=' === operator) {
return _func[x.type][y.type](x, y, operator).toBool(); var _funcVal = _func[x.type][y.type](x, y, operator);
if(cElementType.error === _funcVal.type){
return false;
}
return _funcVal.toBool();
} }
y = y.toString(); y = y.toString();
...@@ -5838,7 +5842,7 @@ function parseNum( str ) { ...@@ -5838,7 +5842,7 @@ function parseNum( str ) {
break; break;
case "=": case "=":
default: default:
res = (x.value == y.value); res = (x.value === y.value);
break; break;
} }
} }
......
...@@ -2623,26 +2623,37 @@ ...@@ -2623,26 +2623,37 @@
arg1 = arg1.getElementRowCol(0, 0); arg1 = arg1.getElementRowCol(0, 0);
} }
arg1 = arg1.tocString(); /*arg1 = arg1.tocString();
if (cElementType.string !== arg1.type) { if (cElementType.string !== arg1.type) {
return this.value = new cError(cErrorType.wrong_value_type); return this.value = new cError(cErrorType.wrong_value_type);
} }*/
var compareValues = function(val, matchingInfo){
var res;
if(val.type === arg1.type && val.value === arg1.value){
return true;
}
res = matching(val, matchingInfo);
return res;
};
var val; var val;
matchingInfo = AscCommonExcel.matchingValue(arg1.toString()); matchingInfo = AscCommonExcel.matchingValue(arg1.toString());
if (cElementType.cellsRange === arg0.type) { if (cElementType.cellsRange === arg0.type) {
arg0.foreach2(function (_val) { arg0.foreach2(function (_val) {
_count += matching(_val, matchingInfo); _count += compareValues(_val, matchingInfo);
}) })
} else if (cElementType.cellsRange3D === arg0.type) { } else if (cElementType.cellsRange3D === arg0.type) {
val = arg0.getValue(); val = arg0.getValue();
for (var i = 0; i < val.length; i++) { for (var i = 0; i < val.length; i++) {
_count += matching(val[i], matchingInfo); _count += compareValues(val[i], matchingInfo);
} }
} else { } else {
val = arg0.getValue(); val = arg0.getValue();
_count += matching(val, matchingInfo); _count += compareValues(val, matchingInfo);
} }
return this.value = new cNumber(_count); return this.value = new cNumber(_count);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment