Berechnung in Spreadtab

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Berechnung in Spreadtab

Re: Berechnung in Spreadtab

von ich meine ja nur » Fr 8. Apr 2022, 12:50

Sam85 hat geschrieben:
Fr 8. Apr 2022, 12:40
Hi, stand ja im ersten Post.
Im ersten Post ist nicht gezeigt, wie du die selbst definierten Makros verwenden willst. Da stand nur, dass das nicht compiliert. Das lag aber schlicht an nicht definierten Befehlen. Ein Minimalbeispiel (bitte die verlinkte Seite im eigenen Interesse einmal komplett lesen!) sollte das eigentliche Problem aber immer zeigen und darüber hinaus möglichst keine weiteren Probleme haben. Sonst ist es eben kein Minimalbeispiel, wie in der verlinkten Anleitung auch klar geschrieben steht. Wenn du meinst, dass das für dich irrelevant ist, dann mag das eine Zeit lang gut gehen. Mir geht aber nicht nur diese überflüssige Diskussion auf den Keks, sondern auch, dass man bei dir immer wieder nachfragen muss. Das ist unnötig, kostet Zeit, nervt und ist damit demotivierend, hier überhaupt noch tätig zu werden. Deshalb hatte ich diese Frage auch erst einmal ignoriert (und hätte es offensichtlich auch weiterhin tun sollen).

Re: Berechnung in Spreadtab

von Sam85 » Fr 8. Apr 2022, 12:40

Hi, stand ja im ersten Post. Aber wenn es mit Macros sowieso "noch" nicht geht, muss ich wohl beim langen Weg bleiben. Danke für die Rückmeldung.

Re: Berechnung in Spreadtab

von ich meine ja nur » Fr 8. Apr 2022, 11:59

Wenn das dein Problem ist, dann sollte das im Minimalbeispiel natürlich auch gezeigt werden. Sonst ist es kein Minimalbeispiel für das Problem.

Aber kurz gesagt: Es wird nicht gehen. spreadtab erlaubt zwar Makros in den Zellen, aber keine Makros, die erst expandiert werden müssen, um die Berechnung zu sehen. Dafür gibt es bei dem Paket Funktionen. Allerdings gibt es bisher nur einige, wenige vordefinierte Funktionen und bezüglich der Definition neuer Funktionen heißt es in spreadtab (siehe Einleitung von Abschnitt 4):
There will be more details on how to program macro functions in the
next version of this manual.
Auf diese next version of this manual warte nicht nur ich nun schon seit drei Jahren ebenso wie auf die in der Fußnote angekündigten notwendigen weiteren Funktionen. :shock:

Re: Berechnung in Spreadtab

von Sam85 » Do 7. Apr 2022, 22:18

Ah ok dann hab ich das Package Booktabs im Minimalbeispiel vergessen. Danke.

Mein Anliegen ist eigentlich nur das hier
\newcommand{\changeTwo}[2]{(#2*#1*\faktorB)/\faktorA}
Ich wollte damit die Berechnung im Spreadtab vereinfachen. Also in der Zeile dann \changeTwo{c5}{c7} statt
((b7*\faktorA)/b5)/\faktorB
schreiben. Das führt aber zu einem Fehler beim kompilieren.

Re: Berechnung in Spreadtab

von gast. » Do 7. Apr 2022, 13:44

Sam85 hat geschrieben:
Do 7. Apr 2022, 12:49
Jedoch wird das NewCommand nicht kompiliert. Schreibe ich es wie im Code wird es kompiliert.
Was genau meinst du damit? Vom \toprule-Fehler abgesehen, kann ich keinen Fehler in dem gezeigten Code sehen. Wenn ich \toprule, \midrule und \bottomrule im Beispiel entferne, compiliert das ohne Fehlermeldung und ohne für mich erkennbaren Fehler.

Re: Berechnung in Spreadtab

von gast. » Do 7. Apr 2022, 13:39

! Undefined control sequence.
<inserted text> ...column-width = 1.4cm]}\toprule 
                                                  \textbf {Funktionsbereich}...
l.41 	\end{spreadtab}
bedeutet, dass die Anweisung am Ende der folgenden Zeile, also \toprule nicht definiert ist. Welches Paket du normalerweise dafür verwendest, weiß ich nicht sicher, möglicherweise booktabs oder tabularray?

Und ich wette, dass der Fehler bei dem Beispiel auch auf overleaf und in TeXstudio gemeldet wird. Man sollte immer alle Fehler beseitigen und sie nicht so lange ignorieren, bis einem das gesamte Dokument um die Ohren fliegt.

Übrigens: \usepackage[utf8]{inputenc} ist seit inzwischen vier Jahren überflüssig.

Berechnung in Spreadtab

von Sam85 » Do 7. Apr 2022, 12:49

Hi

ich habe eine kurze Frage. Ich wollte die Berechnung im Spreadtab etwas vereinfacht schreiben.
\newcommand{\changeOne}[2]{((#2*\faktorA)/#1)/\faktorB}
Jedoch wird das NewCommand nicht kompiliert. Schreibe ich es wie im Code wird es kompiliert.
((b6*\faktorA)/b5)/\faktorB
Kann mir das jemand erklären und mir sagen wie man das richtig macht?

Danke im Voraus.

PS: In Overleaf und TexStudio kompiliert es trotz des Fehlers. Von dem weiß ich leider auch nicht was er bedeutet?

Grüße

Sam


\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tabularx}
\usepackage{mathptmx}
\usepackage[xfp]{spreadtab}
\usepackage{siunitx}
\sisetup{%
	locale=DE,
	group-separator = {.},
	group-digits=integer,
	group-minimum-digits = 4,
	negative-color = red
}

\begin{document}

\begin{table}
\caption{PUMA SE - Mitarbeitervolumen}
\newcommand{\faktorA}{1000000}
\newcommand{\faktorB}{1000}
\newcommand{\changeOne}[2]{((#2*\faktorA)/#1)/\faktorB}
\newcommand{\changeTwo}[2]{(#2*#1*\faktorB)/\faktorA}

    \begin{spreadtab}{{tabularx}{\textwidth}{XS[table-format=1.0, table-auto-round = true, table-alignment = right, table-column-width = 1.4cm]S[table-format=1.0, table-auto-round = true, table-alignment = right, table-column-width = 1.4cm]S[table-format=1.0, table-auto-round = true, table-alignment = right, table-column-width = 1.4cm]}} 
    	\toprule
    	@\textbf{Funktionsbereich} 				        & @\textbf{2020} & @\textbf{2019} & @\textbf{2018} \\ 
    	\midrule
    	@Marketing, Retail und Vertrieb					& 10761	& 10828	& 9491 \\
    	@Produktmanagement, Forschung und Entwicklung 	& 1049	& 999	& 946 \\
    	@Verwaltungs- und allgemeine Bereiche			& 2564	& 2505	& 2457 \\
    	\midrule
    	@\textbf{Mitarbeiter}							& sum(b2:b4) & sum(c2:c4) & sum(d2:d4) \\
    	\midrule
    	@Personalaufwand in Millionen Euro				& 583.7	& 634.5 & 553.8 \\
    	@Durchschnitt pro Mitarbeiter in Tausend Euro	& ((b6*\faktorA)/b5)/\faktorB & ((c6*\faktorA)/c5)/\faktorB	& ((d6*\faktorA)/d5)/\faktorB \\
    	\midrule
    	@Marketing, Retail und Vertrieb					& (b2*b7*\faktorB)/\faktorA	& c2*c7*\faktorB & d3*d7*\faktorB  \\
    	@Produktmanagement, Forschung und Entwicklung	& (b3*b7*\faktorB)/\faktorA	& c3*c7*\faktorB & d3*d7*\faktorB \\
    	@Verwaltungs- und allgemeine Bereiche			& (b4*b7*\faktorB)/\faktorA	& c4*c7*\faktorB & d4*d7*\faktorB \\
    	\bottomrule
	\end{spreadtab} 
\end{table}

\end{document}

Nach oben