Berechnung von Formeln in Office-Editoren. Teil 1


    Ein Bild, das Aufmerksamkeit erregt. Mechanischer Rechner

    Hallo. Heute möchten wir Sie auf einen Einführungsartikel zu Formeln in Office-Editoren aufmerksam machen. Wir werden auch darauf eingehen , wie wir das Problem der Darstellung und Berechnung von Formeln im Kern des MyOffice- Editors lösen und einen Plan für zukünftige Artikel zu diesem Thema skizzieren.

    Beliebte Standards


    Bisher gibt es zwei der beliebtesten Standards, die in Editoren verwendet werden. Einerseits ist es der MS Excel-Tabelleneditor und sein ECMA-OOXML- Standard . Zum anderen die LibreOffice / OpenOffice Calc-Editorenfamilie und der OpenFormula- Standard . Zu dessen Gunsten wurde es entwickelt, um zu berücksichtigen, dass es nicht nur in Büroanwendungen eingesetzt werden kann.

    Für den Durchschnittsbenutzer sind Formeln im Tabelleneditor Funktionsaufrufen zugeordnet. Bei allen Versionen der Editoren und Funktionen gibt es ungefähr viereinhalbhundert. Sie sind bedingt in Anwendungsgruppen unterteilt: Engineering für die Arbeit mit Datenbanken, Datum und Uhrzeit, finanziell, logisch, informativ, mathematisch und trigonometrisch, statistisch, textuell usw. Unabhängig vom Umfang gelten für alle Funktionen dieselben Regeln. Sie können mit bestimmten Arten von Eingabedaten arbeiten oder das Ergebnis der jeweils anderen Arbeit verwenden.

    Unterschiede in den Standards der Tabellenkalkulationseditoren


    Was die Funktionen angeht, gibt es bei beiden Standards große Unterschiede. Sie können eine andere Anzahl von Parametern haben. Parameter können wiederum unterschiedliche Arten von Eingabewerten haben. Auch die Genauigkeit der Berechnungen kann abweichen. Aber nicht weniger, sondern sogar noch viel mehr Unterschiede in der Syntax der Formeln. In der folgenden Tabelle sind nur einige Beispiele für Unterschiede im Datensatz für das englische Gebietsschema aufgeführt (das Format zum Schreiben von Formeln in verschiedenen Gebietsschemata kann ebenfalls erheblich variieren) :


    Im letzten Beispiel ist eine Lücke in der MS Excel-Syntax zwischen zwei Bereichen von Bedeutung und es handelt sich um einen binären Operator zum Überqueren von Bereichen.

    Es gibt tatsächlich Unterschiede in der Syntax von Formeln, aber sie sind nicht so groß, dass die Entwicklung einer einzigen internen Darstellung für beide Formeln der Formelsprache verhindert wird. Eine interne Repräsentation ist ein Parsing-Baum, in dem keine Unterschiede mehr zwischen verschiedenen Formelsyntaxen bestehen. Natürlich können nicht alle Designs eindeutig von einem Datensatz in einen anderen konvertiert werden, und es besteht ein gewisses Maß an Inkompatibilität. Bei grundsätzlichen Unterschieden müssen Sie daher die Seite eines Datensatzes auswählen. Meist handelt es sich dabei um einen MS Excel-Datensatz. Wir unterstützen beide Formate zum Öffnen von Dokumenten, aber das Hauptformat ist OOXML. Alles, was wir öffnen, wird in eine einzige Ansicht konvertiert, die nicht vom Format abhängt. Sie können diese Ansicht in beiden Formaten speichern. Wir haben versucht, die Unterschiede so gering wie möglich zu halten. um beide Formate in einem Modell darzustellen. Beispielsweise haben alle obigen Beispiele in der Tabelle für beide Formate einen absolut identischen Parsing-Baum in unserem Präsentationsmodell.

    Zusätzlich zu den Unterschieden zwischen den Datensätzen gibt es Probleme bei der Verwendung von Tokens innerhalb eines einzelnen Datensatzes. Dies ist ein Leerzeichenoperator in OOXML. Nicht immer ist ein Leerzeichen im Formeleintrag ein harmloser leerer Ort. Manchmal ist dies der Schnittoperator von Zellbereichen.


    Ein Beispiel für die Verwendung des Leerzeichenoperators beim Kombinieren einer Zelle mit einer Liste von Zellen und beim Schneiden mit einem Zellbereich wird verwendet.

    Eine Lücke in der Syntax führt zu mehrdeutigen Situationen im Datensatz. Hier ist ein Beispiel für Excel-Datensätze, die im Aussehen sehr ähnlich, aber im Wesentlichen sehr unterschiedlich sind:

    = SUMME (A1, A2, A3)
    = SUMME (A1, A2, A3)

    Im ersten Fall ist dies ein Aufruf der SUMME-Funktion mit einer Liste von Parametern aus drei Elementen. Im zweiten Fall handelt es sich um einen binären Raumoperator zwischen zwei Parametern, von denen der erste ein Zeichenfolgenbezeichner ist, der als benannter Zellenbereich betrachtet wirdund die zweite ist eine Liste von Parametern von drei Elementen. Der zweite Fall ist ein gültiger Eintrag in Bezug auf die Syntax der OOXML-Formelsprache. Das Ergebnis ist das kumulative Ergebnis der Schnittmenge zwischen dem angegebenen Bereich und der Parameterliste.

    Erwähnenswert ist, dass ein solcher Datensatz sinnvoll ist: '= SUM A1'. Beispielsweise ist SUM ein benannter Bereich A1: B2. In diesem Fall ist das Ergebnis dieses Beispiels der Wert aus Zelle A1.

    Lassen Sie uns abschließend sagen, dass wir uns zunächst die Aufgabe gestellt haben, unseren Benutzern umfassende Funktionen für die Arbeit mit Formeln zur Verfügung zu stellen. Funktionale, die nicht zugeben, sondern die Produkte übertreffen, sind Marktführer. So können wir die Messlatte für die Qualität von Büroartikeln höher legen. Ein gesunder Wettbewerb wird sich positiv auf das gesamte Redaktionssystem der Welt auswirken.

    In den folgenden Artikeln werden wir erzählen


    • Ermitteln der Abhängigkeiten zwischen Zellen in einem Dokument und Berechnen von Formeln unter Berücksichtigung von zyklischen Abhängigkeiten.
    • Wie kann ich einen kontextsensitiven Raumoperator implementieren? Ziehen Sie in Betracht, einen Analysebaum am Beispiel des Leerzeichenoperators zu erstellen.
    • Zur Lokalisierung von Funktionsnamen und Formelsyntax.
    • Was sind Array-Formeln und wie werden solche Strukturen im Kern unseres Editors berechnet?

    Vielen Dank und wünschen Ihnen keine # DIV / 0! noch #NULL!

    Jetzt auch beliebt: