Jump to content

Tino Jenke

smapLand members
  • Posts

    30
  • Joined

  • Last visited

  • Days Won

    1

Tino Jenke last won the day on December 16 2023

Tino Jenke had the most liked content!

4 Followers

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Tino Jenke's Achievements

Contributor

Contributor (5/14)

  • smapLand Festival 2024
  • Pioneer - 1. Year of smapLand
  • Great Posts
  • Helping Hand
  • Dedicated Rare

Recent Badges

49

Reputation

2

Community Answers

  1. @Bülent Erbas Ja das hatte mir ChatGPT in 100 verschiedenen Facetten ausgegeben. 😅 Leider hat mich keine davon weiter gebracht. Ich konnte es jetzt über diverse Umwege lösen können mit Vielen Teilbausteinen von Chat GPT. Die Lösung sieht jetzt in meinem Szenario so aus: #"Hinzugefügter Index" = Table.AddIndexColumn(#"Entfernte Spalten", "Index", 1, 1, Int64.Type), Berechnung1 = Table.AddColumn(#"Hinzugefügter Index", "Summe", each 0 + [Einnahme] - [Ausgabe]), // Annahme: Quelle ist der Name deiner Tabelle/Abfrage Quelle1 = Berechnung1, // Schritt 1: Lade den Wert des Jahresanfangs aus einer anderen Abfrage JahresanfangQuery = Jahresanfang,// Hier den Code einfügen, um den Wert des Jahresanfangs zu erhalten // Schritt 2: Schleife über die Zeilen der Spalte ausführen und die Werte aufsummieren AddCustomColumn = Table.AddColumn(Quelle1, "Kumulierte Summe", each let // Aktuelle Zeile currentRow = _, // Index der aktuellen Zeile currentIndex = currentRow[Index], // Summe der Werte bis zur aktuellen Zeile cumulativeSum = List.Sum(List.FirstN(Quelle1[Summe], currentIndex)) + JahresanfangQuery // Hier den Wert des Jahresanfangs einfügen in cumulativeSum ), NeuerAlterKontostand = Table.AddColumn(AddCustomColumn, "Alter Kontostand", each if [Index] = 1 then [AlterKontostand] else null), #"Entfernte Spalten3" = Table.RemoveColumns(NeuerAlterKontostand,{"AlterKontostand", "Index", "Summe"}), #"Neu angeordnete Spalten2" = Table.ReorderColumns(#"Entfernte Spalten3",{"Name", "Alter Kontostand", "Buchungsdatum", "Buchungstext", "Kommissionsnummer", "Einnahme", "Ausgabe", "FileID", "RecordID", "smapId", "Kumulierte Summe"}), step1 = {null} & List.RemoveLastN(Table.Column(#"Neu angeordnete Spalten2", "Kumulierte Summe"),1), step2 = Table.ToColumns(#"Neu angeordnete Spalten2") & {step1}, ErzeugePreviousRow = Table.FromColumns(step2, Table.ColumnNames(#"Neu angeordnete Spalten2") & {"previousRow"}), #"Geänderter Typ1" = Table.TransformColumnTypes(ErzeugePreviousRow,{{"Kumulierte Summe", Currency.Type}, {"Alter Kontostand", Currency.Type}, {"previousRow", Currency.Type}}), #"Zusammengeführte Spalten" = Table.CombineColumns(Table.TransformColumnTypes(#"Geänderter Typ1", {{"previousRow", type text}, {"Alter Kontostand", type text}}, "de-DE"),{"previousRow", "Alter Kontostand"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"AlterKontostand"), #"Geänderter Typ" = Table.TransformColumnTypes(#"Zusammengeführte Spalten",{{"AlterKontostand", Currency.Type}}), Ganz grob gesagt funktioniert es so, dass die Berechnung erstmal mit Ausgangswert 0 in jeder Zeile durchgeführt wird. Also 0 + Einnahme - Ausgabe. Daraus wird eine Summe gebildet. Dieses Ergebnis wird dann in die Spalte Summe geschrieben. Es wird dann vom 1. Ausgangswert (in Meinem Fall der Jahresanfang) angefangen die Summe der Zeile zum Kontostand hinzu zu addieren. Dadurch entsteht die Kumulierte Summe, die dann einfach über einen Feldbefehl eine Zeile nach unten versetzt wird und so wieder den Basiswert AlterKontostand bildet. Habe mir die Zähne daran ausgebissen, aber für mich hat es so funktioniert. Ich hoffe mit der Erklärung lässt sich das für irgendjemanden bei Bedarf replizieren. VG Tino 😊
  2. Hallo Micha, Danke für deine Antwort aber ich fürchte ja, mir geht es wirklich um Power Query und den M-Code dahinter. Mit Excel Formeln komme ich da leider nicht weiter.
  3. Hallo zusammen, ich habe da mal ein "komplexeres" Problem an dem ich mir aktuell die Zähne ausbeiße. Ich habe eine PowerQuery Abfrage die sich Daten aus SmapOne zieht. Dabei geht es um eine Baukasse. Ich habe die Anfrage schon soweit formatiert wie ich das benötige. Nun fehlt mir nur noch eine Berechnung. Die Abfrage hat die Spalten "AlterKontostand", "Einnahme" und "Ausgabe". Ich versuche jetzt schon seit Tagen mit diversen KI Tools folgendes zu erreichen. Nur in Zeile 1, soll die folgende Berechnung stattfinden: AlterKontostand + Einnahme - Ausgabe. Das Ergebnis soll dann in eine neu erzeugte Spalte "Ergebnis" geschrieben werden. Woran es jetzt scheitert ist alles ab Zeile 2. Ab da soll dann nicht mehr "AlterKontostand" der Ausgang der Berechnung sein sondern das Ergebnis der Zeile darüber. Also in Zeile 2 Ergebnis aus Zeile 1 + Einnahme - Ausgabe = Ergebnis usw. Es wäre auch in Ordnung das ganze mit irgendwelchen Zusätzlich Spalten zu regeln, das kann ich mir dann zurecht schieben. Hat da eventuell schon mal jemand etwas gebaut oder schon Erfahrung damit? Ich danke euch ganz sehr im Voraus 🙏
  4. Hallo @Bülent Erbas, danke für deine Schnelle Rückmeldung. Ja das ist im Moment die Lösung die wir bereits verwenden, jedoch kommt es immer wieder vor dass unsere Führungskräfte bei komplexeren Smaps schnell den Überblick verlieren wo noch Felder auszufüllen sind und wo nicht, vorallem wenn diese keine Pflichtfelder sind. Mit den Links könnte man eventuell direkt auf die jeweils wichtigen Bausteine verweisen sodass der Aufgabenempfänger nur noch die Links "abklappern" müsste.
  5. Hallo zusammen, ich hätte da mal eine Frage/ falls darauf keine Lösung zu finden ist einen Feature-Wunsch. Gibt es die Möglichkeit innerhalb der Smap auf verschiedene Abschnitte zu verweisen und per Knopfdruck in der App dahin zu "springen"? Für mich wäre das gerade bei komplexen Smaps mit Aufgabenerstellung sehr praktisch, so könnte man die vorgegebenen Felder ausfüllen, dann eine Aufgabe für einen Kollegen erzeugen und dieser kann dann per Link oder per Knopfdruck zu den noch auszufüllenden Bereichen in der Smap springen ohne permanent suchen zu müssen. Ich hoffe dafür gibt es schon eine Lösung 🙏 Ich danke euch
  6. Ja das habe ich machen lassen, darum geht es mir jedoch nicht. Mir gehts darum diese Konfigurierbar und vorallem formatierbar zu ersetzen.
  7. Hallo zusammen, im weiteren Arbeiten mit smapOne ist uns aufgefallen, dass es wohl keine Möglichkeit gibt, Standartisiert eine Mail Signatur formatierbar an jede versendete Mail anzuhängen. In unserem Szenario wäre es super, wenn wir diese Unternehmensweit verwenden könnten, für andere wäre es jedoch sicherlich sinnvoll diese Benutzerabhängig gestalten zu können. (z. B Grundgerüst und Inhalte bis auf Name Telefonnummer Position und Mailadresse immer gleich) Danke euch VG Tino 😊✌️
  8. Hallo @Jonas Mithöfer, das lässt sich eigentlich relativ entspannt mittels PowerQuery in Excel lösen. Der liebe @Moritz hat da ein wunderbares Videotutorial erstellt in dem du Schritt-für-Schritt verstehen solltest, wie das ganze funktioniert. Alternativ kannst du natürlich auch über den Reiter Daten in deinem Creator-Account die Tabelle so filtern, dass die Namen der Kinder und die Bemerkungen angezeigt werden und das dann jedes mal als Excel importieren, allerdings ist die PQ-Variante da deutlich eleganter, da du jedes mal nur auf "Daten aktualisieren" drücken brauchst und somit die neuesten Daten einfach hinzugefügt werden können. Das ganze lässt sich da dann auch noch weiter konkretisieren (z.B. nur die Daten aus dem November anzeigen etc.) Ich hoffe ich konnte dir damit helfen. Viele Grüße 🙏
  9. Hallo Annemarie, grundlegend ist das Beispiel Mitarbeiterliste eines meiner aktuellen Szenarien in Verbindung mit dem Wunsch. Mir geht es um beides tatsächlich, sowohl Teile auslassen, als auch ausblenden aber verwendbar lassen. Beides natürlich für verschiedene Szenarien. In meinem Fall wäre es praktisch, wenn feste Bereiche gewählt und konfiguriert werden könnten.
  10. Hallo zusammen, ich hätte da mal wieder einen Feature-Wunsch. Ich fände es für unsere Anwendungsbereiche sehr praktisch, wenn es die Möglichkeit gäbe, nach dem hochladen einer Datenquelle, diese genauer konkretisieren zu können. In meinem konkreten Fall bräuchte ich zum einen die Funktion, auswählen zu können welches Arbeitsblatt verwendet werden soll (bisher ist es ja automatisch das erste) und welche Bereiche und besonders welche nicht verwendet werden sollen. Also nicht nur ausgeblendet. Aktuell ist es ja so dass, wenn ich nur 3 Spalten anzeigen lasse die Tabelle aber 6 Spalten hat, ich beim ansehen des ausgewählten Datensatzes trotzdem alle 6 sehe. Ich hoffe ihr versteht wie ich das meine. Danke euch VG Tino ✌️✌️
  11. Hallo @Sebastian, wie muss ich mir das vom Ablauf her Schematisch vorstellen?
  12. Hallo zusammen, ich hatte bei den Feature-Wünschen schonmal geäußert, dass ich es sehr gut fände, wenn man einzelne Einträge aus einer Wiederholungsgruppe außerhalb selbiger verwenden könnte. Da ich nun kurzfristig und zumindest übergangsweise eine Lösung benötigt habe, habe ich mir eine Möglichkeit überlegt mit der es klappen könnte. Ich habe dann versucht diese umzusetzen und Tada 🎉 hat funktioniert. Deswegen dachte ich, ich teile das mal mit euch, für den Fall jemand steht vor einem Ähnlichen Thema. VORAB: Das ist keine Lösung für Wiederholungsgruppen mit 100 Einträgen, sie sollte recht kurz sein, da das ganze sehr schnell unübersichtlich wird. Da das ganze recht komplex ist, ist hier der Link zum importieren der Smap. Da ist einiges vermutlich verständlicher: https://platform.smapone.com/portal/Creator/Apps/Import?smapVersionId=652030b4-6eb6-4cf4-bcb5-9997535eaf07&secId=f87896c4e73d6253e09bf3977ad0dfadb246a9eb&lang=de Mein Szenario war folgendes: Wir wollen eine Stundenerfassung mit dynamischer Mitarbeiterauswahl erzeugen, DSAB wird per REST-API bei Eintreten oder Austreten eines Mitarbeiters aktualisiert. Der Mitarbeiter soll nun seinen Namen und die Namen der anderen Kollegen auswählen und Dinge wie Personalnummer, Mail etc. sind damit automatisch mit abrufbar. Nun soll außerhalb der Wiederholungsgruppe festgelegt, dass z.B. nur der erste angegebene Mitarbeiter außerhalb der Gruppe angegeben werden kann (z.B. als aktuell Arbeitsverantwortlicher/Kolonnenführer etc.). Ich habe die Gruppe auf 8 Einträge beschränkt. Die Wiederholungsgruppe sieht im Designer wie folgt aus: Relevant für das Thema sind die Bausteine "NameWorker", "ResultNameWorker" und "Counter". Die Bausteine "NameWorker" Sowie "ResultNameWorker" enthalten die gleiche Formel - "CONCAT({SelectWorker[Name]})" - ist mir leider erst danach aufgefallen 🫠. Der Baustein Counter enthält die Formel - "IF(NOTEMPTY({NameWorker}),1,0)" - Damit wird die Zahl 1 jedem erzeugten Eintrag hinzugefügt. Außerhalb der Wdh.Gruppe habe ich dann folgenden Aufbau (logischerweise bis zum 8. Mitarbeiter): Der Baustein "SumWorker" zählt die Anzahl der Einträge über den "Counter". So wird immer die korrekte Summe der ausgewählten Einträge erzeugt. Darunter befindet sich der Baustein "AllNamesWorker". Dieser soll alle Namen die in der Gruppe ausgewählt wurden zusammenfassen und sie mit einem Semikolon trennen. Dafür folgende Formel: Das Ergebnis sieht dann etwa so aus: "Name Mitarbeiter;Name Mitarbeiter 2;usw." Im späteren Verlauf wollen wir diesen Baustein Stück für Stück auftrennen. Damit das unabhängig von der Position der jeweiligen Semikolons funktioniert habe ich je einen Zahlenergebnis Baustein pro möglichem Semikolon erzeugt (in meinem Fall bei 8 Einträgen, 7 maxmial mögliche Semikolons). Diesen Bausteinen musste ich dann per Formel die Position der Semikolons zuweisen. Beim 1. Semikolons passiert das mit dieser Formel: Darüber wird die Position als Zahl ausgegeben. Die TEXTPOS Formel sucht, wenn nicht konkreter angegeben, immer nach der Ersten Übereinstimmung mit der Sucheingabe. Damit also beim zweiten Baustein dieser Art nicht das selbe Ergebnis ausgespuckt wird, brauchen wir nachfolgende Formel: Damit beginnt die "Zählung" ab dem Zeichen nach der Postionsnummer des ersten Semikolons. Diese Formel muss dann bei allen nachfolgenden entsprechend angepasst werden. (Beim 2. Bezug auf den 1., beim 3. Bezug auf den 2. usw.) Dann folgen die Namensbausteine (_1stWorker ff.) mit den Formeln um den jeweiligen Namen des Mitarbeiters zu extrahieren. Beim 1. ist das auch wieder gar nicht so kompliziert. Die Formel prüft per IF Abfrage folgendes: Wenn "SumWorker" ist GENAU gleich 1 - Dann Nimm dir "AllNamesWorker" ab Zeichen 1 - Zeichen 999. Wenn das nicht der Fall ist beginnt eine neue Prüfung die überprüft: Wenn "SumWorker" ist GENAU gleich 0 - Dann zeige "Kein Mitarbeiter ausgewählt" an. Ist auch das nicht der Fall Nimm dir Den Baustein "AllNamesWorker" ab Zeichen 1 bis Zum Ergebnis von "Position 1. Semikolon" - Minus 1. Die Bausteine danach prüfen auf ähnliche Weise: Ab diesem zweiten Baustein muss per Formel nur der Text zwischen 1. und 2. Semikolon ausgegeben werden. Folgender Prüfverlauf ist darin enthalten: Wenn "SumWorker" ist Kleiner Oder Gleich 2 - Dann Nimm dir "AllNamesWorker" - Ab "Position von Semikolon 1" Plus 1 (sonst kommt das Semikolon mit) bis Zeichen 999. Wenn "SumWorker" nicht kleiner oder gleich ist, dann prüfe: Wenn "SumWorker" ist Größer oder Gleich 3, Dann nimm dir "AllNamesWorker" - Ab "Position von Semikolon 1" Plus 1 - Bis "Position von Semikolon 2" Minus 1 (Sonst kommt auch hier wieder das Semikolon mit). Damit wird jetzt der Text zwischen Semikolon 1 und 2 ausgegeben und kann außerhalb der Gruppe verwendet werden. Das selbe wird dann für die anderen Bausteine fortlaufend bearbeitet. Beim letzten Baustein muss natürlich dann nicht mehr alles geprüft werden sondern nur folgendermaßen: IF(EQUALS({SumWorker},8),SUBTEXT({AllNamesWorker},ADD({SemiPos7},1),999)). Ich weiß das ganze ist sehr komplex und eignet sich nur für bestimmte Anwendungsfälle. Aber so funktioniert es für mich auf jeden Fall in diesem Szenario erstmal. Ich hoffe das ganze ist nicht zu unverständlich geworden und ich kann irgendjemandem damit ein wenig Kopfschmerzen ersparen. 😅 Viele Grüße
  13. Hallo zusammen, kennt zufällig jemand eine Methode um multiple Webhooks für die selbe Smap einzurichten?
  14. Ich glaube das ist auf internes Kopieren für sich selbst bezogen. Zumindest Unternehmensglobal habe ich noch keine "schöne Variante gefunden". Übergangsweise werde ich das wohl so lösen müssen, dass ich im Automatismus jede DataSource im jeweils gültigen Account updaten muss.
×
×
  • Create New...