Office: (Office 365) Summenteilergebnis eines Arrays als Array darstellen

Helfe beim Thema Summenteilergebnis eines Arrays als Array darstellen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Community, Summenteilergebnis eines Arrays als Array darstellen. An dieser Stelle stecke ich fest. Ich habe eine Testmappe erstellt, die die... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Roger977, 24. Januar 2024.

  1. Roger977 hat Ahnung

    Summenteilergebnis eines Arrays als Array darstellen


    Hallo Community,

    Summenteilergebnis eines Arrays als Array darstellen.
    An dieser Stelle stecke ich fest. Ich habe eine Testmappe erstellt, die die Problematik versucht darzustellen. Bevor jemand fragt, warum ich nicht gleich die Datei schicke - weil sich die Teilergebnisse über mehrere Tabellenblätter ziehen und das nur verwirren würde und zweitens, meine kläglichen Versuche das Problem zu lösen sich über die Tabellen-Blätter verstreuen. Eine Testtabelle, die sich auf das Problem fixiert hielt ich daher für die beste Lösung.

    A1:E5 zeigt eine Tabelle, die sich im Original dynamisch nach bestimmten Kriterien nach Inhalt und Größe anpasst.
    Innerhalb der Tabelle stehen in jeder Zelle Wertereihen. Diese sind aus verschiedenen Tabellen und müssen in einer Zelle sein. Die zweite Reihe stellt in der Formel den mit Let erstellten Parameter C dar. Wenn ich C irgendwo in der Tabelle als Array darstelle und anschließend die Summenteilergebnisse berechnen lasse, klappt das. Wie in den Formel aufgezeigt. Aber eben nicht, wenn ich das gleiche innerhalb der Ursprungsformel mit C versuche, so dass ich die Sumenteilergebnisse in der Ursprungsformel, dort wo C berechnet wird, verwenden könnte. Einfach die Testmappe anschauen. Etwas konfus, aber ich hoffe, jemand blickt da durch.
     
    Roger977, 24. Januar 2024
    #1
  2. Exl121150 Erfahrener User
    Hallo,

    so richtig blicke ich bei dem Ganzen nicht durch. Das, was mir aufgefallen ist:

    1) Im Zellbereich A9:E13 hast du Werte stehen, welche Zahlen sein sollen, die aber als Texte in den Zellen gespeichert sind.

    2) Die Konsequenz daraus ist, dass man mit diesen Werten nicht unmittelbar rechnen kann - man muss eine numerische Konversion durchführen, zB. hast du deshalb in B22 die Arrayformel =ZUSPALTE(WERT(A9:E13)) verwendet, ich hätte das mit der Arrayformel =--ZUSPALTE(A9:E13) gemacht.

    3) Warum du dann in Zelle C22 eine so extrem komplizierte und sicher auch rechenzeitintensive (wegen der INDIREKT-Funktion) Arrayformel platziert hast. weiß ich nicht. =ZUSPALTE(TEILERGEBNIS(9;INDIREKT(ZELLE("adresse";$B$22)&":"&ADRESSE(ZEILE(B22#);SPALTE($B$22)))))
    Diese Formel soll ja offensichtlich nur die kumulierten Summen der Arraywerte B22# produzieren, was mit folgender Arrayformel genau so gemeistert werden kann: =SCAN(0;B22#; LAMBDA(akk;w; akk+w))
    oder falls du die Zwischenspeicherung des Arrays A9:E13 in B22# vermeiden möchtest:
    =LET(bs;--ZUSPALTE(A9:E13); SCAN(0;bs; LAMBDA(akk;w; akk+w)))
    oder ganz einfach ohne LET: =SCAN(0;--ZUSPALTE(A9:E13); LAMBDA(akk;w; akk+w))
    oder bei einem ganz brandneuem Excel365: =SCAN(0;--ZUSPALTE(A9:E13); SUMME)
     
    Zuletzt bearbeitet: 24. Januar 2024
    Exl121150, 24. Januar 2024
    #2
  3. Roger977 hat Ahnung
    Hallo,
    erstmal Danke dafür, dass du dir das angeschaut hast. Gerade jetzt, bin ich im Nacht-Dienst, aber ich werde mir deine Antwort im Laufe des Abends noch genau anschauen und alles beantworten. Ich hoffe, du bleibst dran und ich höre morgen noch etwas von dir. Toll, dass ich dich, Anton, wieder erwischt habe. Einer der Wenigen, die bei mir durchblicken und in der Lage sind, die Formeln, wenn auch nicht wissend warum, zu interpretieren und sich daraus ein Reihm machen können.
     
    Zuletzt bearbeitet: 24. Januar 2024
    Roger977, 24. Januar 2024
    #3
  4. Roger977 hat Ahnung

    Summenteilergebnis eines Arrays als Array darstellen

    Also, erstmal eine Teilantwort.
    A1:E5 - dynamische Tabelle, welche das Resultat als solches ist. Da die Werte aus verschiedenen Tabellen stammen ging kein Zahlenformat. Um es einheitlicher zu gestalten, die Textform, welche die Zahlenwerte kürzt.
    Werteblock A9:E13 - "C" als Textform aufgeschrieben, um daraus ein Array bilden zu können, welches in B14# steht, um dann zu veranschaulichen, dass daraus die Summenteilergebnisse berechnet werden können (wie in C22#), aber eben nicht in der Hauptformel selbst, welche in A16:I20 und K16:S20, als auch in H1:P5 jeweils etwas abgewandelt dargestellt werden.
    Das alles sollte dazu dienen, die Problematik zu erläutern.
    Diese wurde nun aber glücklicherweise von dir erkannt, daher zu deiner Antwort:
    1) Begründung siehe oben
    2) =--ZUSPALTE(A9:E13) funktioniert, aber den Trick kannte ich noch nicht. Was genau macht '--' und wo kann es angewendet werden. Sicher nicht nur bei WERT()
    3) "Diese Formel soll ja offensichtlich nur die kumulierten Summen der Arraywerte B22# produzieren.." Exakt, ich musste ja irgendwie ein Array hinbekommen. 'Scan' kam mir auch in den Sinn, aber da diese nur mit einer LAMBDA-Funktion funktioniert, gab es ein Problem. Ich möchte die Datei öffentlich machen oder besser in ein Forum stellen, wobei sie transparent sein soll und sozusagen Open-Source. Da nicht jeder Excel365 hat sollte dies zumindest auch mit excel für web funktionieren. Soweit ich weiß, korrigiere mich, wenn ich falsch liege, kann excel für web zwar LAMBDA verarbeiten, aber es gibt keinen Zugang zu dem Namensmanager. Damit wäre die Transparenz dahin gewesen. Allerdings zeigst du mir gerade, dass man die LAMBDA auch gleich in die Scan-Formel mit einpflegen kann, dies hatte ich vergessen. Soweit erstmal alle offenen Punkte erläutert. Das eigentliche, deine Lösung muss ich seperat testen. Wahrscheinlich habe ich daraufhin auch noch Fragen. Nochmal danke soweit..
     
    Roger977, 24. Januar 2024
    #4
  5. Roger977 hat Ahnung
    Guten Morgen,
    also ganz klar, ich hab's mit Scan versäumt und wollte das mit mir geläufigeren Formeln machen. (10 Tage getüftelt).
    Wie immer, wenn man's weiß, eigentlich ganz einfach. Ab Zeile 51 zu sehen, was ich bezwecken wollte.
    Bleibt die Frage nach dem "--" vor der Funktion. Danke, dass hat mir echt Kopfschmerzen bereitet.
    SCAN(0;C;LAMBDA(SUMME)) hat nicht funktioniert.
     
    Roger977, 25. Januar 2024
    #5
  6. Exl121150 Erfahrener User
    Hallo,

    was ist an dem
    so unverständlich?
    Steht in einer Zelle Zahlentext, zB. "3,14" (also als Text, nicht als Zahl), dann bewirkt eine Formel wie =-"3,14", dass in der Zelle -3,14 als Zahlenwert steht, ein abermaliges "-", zB. =--"3,14" bewirkt, dass die negative Zahl wieder positiv wird, also 3,14 in der Zelle steht (diesmal als Zahl, nicht als Text).
    Man könnte auch =-(-"3,14") schreiben, was den mathematischen Schreibgewohnheiten besser entsprechen würde.

    das funktioniert so in keiner Excel-Version.
    Falls C ein Zahlenarray oder Zahlenmatrix ist, dann kann man mit folgender Formel kumulierte Summen bilden:
    =SCAN(0;C; LAMBDA(a;w; a+w))
    Diese Formel funktioniert im ganz normalen Excel365.
    Daneben gibt es 2 weitere Excel365-Versionen: Excel365 Insider im aktuellen Kanal und Excel365 Insider im Betakanal.
    Im Excel365 Insider Betakanal werden neue Funktionen und Features zuerst vorgestellt, aber man muss sich im Klaren sein, dass dies ein experimenteller Kanal ist, der sich bis zur endgültigen Version noch ändern kann, ferner können hier auch noch Bugs enthalten sein.
    In diesem Betakanal wurde eine spezielle Art der LAMBDA-Funktionen eingeführt, die "Eta-Lambda-Funktionen".
    Man kann hier schreiben: =SCAN(0;C;SUMME) und Excel weiß, was unter SUMME zu verstehen ist, nämlich LAMBDA(a;w;a+w). Weitere Details würden hier zu weit führen.
    Man kann dies im normalen Excel365 simulieren wie folgt: =LET(s;LAMBDA(a;w;a+w); SCAN(0;C;s))
     
    Exl121150, 25. Januar 2024
    #6
  7. Roger977 hat Ahnung
    Verstehe. Ein weiteres Problem habe ich noch. In der letzteren Datei von mir habe ich ab Zeile 51 deine Scan-Funktion bereits implementiert. Wie bewerkstellige ich nun, dass man aus dem erstellten "Scan-Array" einen bestimmten Bereich erneut berechnet. In diesem Fall in Verwendung mit der Formel rechts oder zumindest den ersten Teil davon, da nur das eine Ergebnis heraus kommen soll. Beispiel: Von D51 bis B52. Das Ergebnis wäre dann 49,30 EURO.
     
    Roger977, 25. Januar 2024
    #7
  8. Roger977 hat Ahnung

    Summenteilergebnis eines Arrays als Array darstellen

    Konnte ich nun mit
    =LET(.....;
    Cs; SCAN(0;C;LAMBDA(a;v;a+v)); Cb; INDEX(Cs;$J$59)-WENNFEHLER(MAX(ÜBERNEHMEN(Cs;$I$59-1));0);
    Cb)
    lösen.
    Anfangszelle: $I$59 Zellenende: $J$59
    Falls du einen eleganteren Lösungsvorschlag hast, lasse es mich wissen. Vielen Dank für deine Hilfe.
     
    Roger977, 25. Januar 2024
    #8
  9. Exl121150 Erfahrener User
    Hallo,
    wenn du damit meinst, die Differenz zwischen einem bestimmten Cs(J59) und dem Cs(I59-1) zu ermitteln, brauchst du nur von der eben benutzten Formulierung auszugehen:
    INDEX(Cs;$J$59)-INDEX(Cs;$I$59-1)
    wobei eine WENN-Abfrage nötig ist, wenn I59 eine 1 oder eine 0 oder ... enthalten sollte.
    INDEX(Cs;$J$59)-WENN($I$59<=1;0;INDEX(Cs;$I$59-1))
    Genauso könnte es ratsam sein, zu überprüfen, ob in J59 eine größere Zahl enthalten ist, als Elemente im Array Cs enthalten sind:
    INDEX(Cs;MIN($J$59;ZEILEN(Cs)))-WENN($I$59<=1;0;INDEX(Cs;$I$59-1))
    Diese Formel habe ich dir vereinfacht, indem ich die LET-lokale LAMDA-Funktion ZahlForm eingefügt und innerhalb der ZEILENUMBRUCH-Funktion 2x angewendet habe. In strukturierter Form schaut die Formel wie folgt aus;
    Summenteilergebnis eines Arrays als Array darstellen upload_2024-1-26_16-27-45.png
    Ich konnte sie nicht testen, da mir die Werte für de,dn,... fehlen, die aus einer externen Datei stammen: 'C:\Users\user7\Desktop\Excel\[TACTICOIN.xlsx]EVENT MATRICES'!$CZ:$CZ
    bzw. 'C:\Users\user7\Desktop\Excel\[TACTICOIN.xlsx]VALUES'!$D$1
    oder 'C:\Users\user7\Desktop\Excel\[TACTICOIN.xlsx]EVENT MATRICES'!$M$4
    ferner wird Bezug genommen auf ein VALUES-Arbeitsblatt.
     
    Zuletzt bearbeitet: 26. Januar 2024
    Exl121150, 26. Januar 2024
    #9
  10. Roger977 hat Ahnung
    Hallo Anton, lieben Dank für deine Mühen.
    Die anpassbare Anzahl von Dezimalzahlen über deine strukuriertere ZahlForm-LAMBDA scheint etwas übersichtlicher, daher werde ich diese auch so übernehmen. Gerade dann, wenn man diese mehrfach einsetzt. Den zweiten INDEX habe ich noch nicht ausprobiert, ich gehe aber davon aus, dass das ebenfalls aufgeht. Ich muss wieder mal um zu viele Ecken gedacht haben. Da du ansonsten die komplette Formel kopiert hast und mit anderen Absätzen versehen hast, gehe ich einfach davon aus, dass es dich ziemlich getriggert hat, dass diese nicht in deiner gewohnten Strukturierung war. Und ja, es sieht auch professioneller aus. Aber ob ich das so übernehmen kann/will ist noch mal etwas anderes. Wie dem auch sei, deine Hilfestellungen sind manchmal keine leichte Kost, aber immer extrem umfangreich und ich glaube du merkst auch, wenn der Gegenüber sich ebenfalls Mühe gibt. Dank Dir.
     
    Roger977, 28. Januar 2024
    #10
Thema:

Summenteilergebnis eines Arrays als Array darstellen

Die Seite wird geladen...
  1. Summenteilergebnis eines Arrays als Array darstellen - Similar Threads - Summenteilergebnis Arrays Array

  2. Teile eines Arrays können nicht geändert werden

    in Microsoft Excel Hilfe
    Teile eines Arrays können nicht geändert werden: HAllo ich habe mich im Forum umgesehen und einen Eintrag gefunden mit dem man in einem Array den Letzten einegegebenen Wert einer Spalte ermittelt. Jetzt habe ich die Formel von Sheet1 in Sheet2...
  3. Zwei Arrays auf gemeinsamen Nenner bringen

    in Microsoft Excel Hilfe
    Zwei Arrays auf gemeinsamen Nenner bringen: Hallo zusammen, für ein VBA Projekt habe ich zwei Arrays, welche ich als Variant speichere. Die Arrays enthalten in der Regel exakt die gleichen Werte - es kann aber vorkommen, dass ein Array ein...
  4. Ergebnis aus 2 Arrays im Dritten zusammen fassen

    in Microsoft Excel Hilfe
    Ergebnis aus 2 Arrays im Dritten zusammen fassen: Moin, mal ne Frage an die VBA`ler *Smilie Kann ich die Ergebnissen aus 2 Array`s in einem weiteren Array direkt zusammen führen und damit weiter arbeiten? Im Beispiel varTmpA und varTmpA...
  5. mehrdimensionale Arrays vergleichen

    in Microsoft Excel Hilfe
    mehrdimensionale Arrays vergleichen: Hallo ich habe ein Problem und wäre um eure Hilfe sehr dankbar. Und zwar geht es darum, 2 Arrays miteinander zu vergleichen. Es handelt sich dabei um mehrdimensionale, dynamische Arrays. In...
  6. Arrays Durchlaufen

    in Microsoft Excel Hilfe
    Arrays Durchlaufen: Hallo Community, irgendwie steige ich bei Arrays nicht ganz durch... Ganz kurz erklärt: Aus einer Datenbank schreibe ich Daten in ein Array (und transfomiere es sodass Spalten-Zeilen wie in einem...
  7. Funktion ZÄHLENWENN: enthält eine Zelle einen Text einer Zelle aus einem Arrays ?

    in Microsoft Excel Hilfe
    Funktion ZÄHLENWENN: enthält eine Zelle einen Text einer Zelle aus einem Arrays ?: Hallo, ich versuche mal, mein Problem zu schildern, indem ich das Obst-Beispiel der Excel-Hilfe verwende. Ich habe in mehreren Zellen den ZÄHLENWENN-Bereich, z.B.: C1 = "Bananen" C2 = "Äpfel" C3...
  8. VBA - Aktueller / Maximaler Speicherbedarf eines Arrays per Code bestimmen

    in Microsoft Excel Hilfe
    VBA - Aktueller / Maximaler Speicherbedarf eines Arrays per Code bestimmen: Hallo, Ich arbeite in meinem aktuellen Projekt mit Arrays. Nun stellt sich mir die Frage wie groß ein Array im Speicher sein darf? Ist es möglich den maximalen Speicherbedarf eines Arrays per...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden