Details

    • Type: Bug
    • Status: New
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: OpenFormula
    • Labels:
      None

      Description

      When editing the proposal for the new function SORTBY, I noticed that the syntax of functions with a variable number of parameters is not consistent.

      How to write the syntax of functions is generally described in section 6.2 Common Template for Functions and Operators, part 4.
      There it says
      ◦ A { ... } indicates a list of zero or more parameters, separated by the function parameter separator character.
      ◦ A { ... } followed by a superscripted + indicates a list of one or more parameters, separated by the function parameter separator character.

      For the following functions, the syntax always has the form
      function name( {data-type parametername}+ )

      IMPRODUCT, IMSUM, COUNT, COUNTA, AND, OR, XOR, GCD, LCM, MULTINOMIAL, PRODUCT,
      SUM, SUMPRODUCT, SUMSQ, AVEDEV, AVERAGE, AVERAGEA, DEVSQ, GEOMEAN, HARMEAN,
      KURT, MAX, MAXA, MEDIAN, MIN, MINA, MODE, SKEW, SKEWP, STDEV, STDEVA, STDEVP
      STDEVPA, VAR, VARA, VARP, VARPA, CONCATENATE

       

      NPV( Number Rate ; { NumberSequenceList Values }+ )
      CHOOSE( Integer Index ; { Any Value }+ )

      Here there is a parameter in front of {}+ and you can see that the ; is outside of {}.

       

      GETPIVOTDATA( Text DataField ; Reference Table { ; Text FieldName ; Scalar Member }* )
      The * does not exist in the template. This could be a bug in the template as well as in GETPIVOTDATA. There is neither a function with only {}, nor is there another function with {}* .

      But here the semicolon is inside { }. This is not consistent. But I don't see how to write, that the ; is not needed if there is no optional parameter.

      SUMIFS( Reference R ; Reference R1 ; Criterion C1 [ ; Reference R2 ; Criterion C2 ]... )
      COUNTIFS( Reference R1 ; Criterion C1 [ ; Reference R2 ; Criterion C2 ]... )

      These functions do not use {} at all. They would have to be adapted. An "and-so-on" is not provided for in the syntax.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              regina.henschel Regina Henschel
            • Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: