Beim dynamischen Drucken in Excel werden Daten übersprungen

Beim dynamischen Drucken in Excel werden Daten übersprungen

Ich habe im Namensmanager einen dynamischen Druckbereich eingerichtet, um Zeilen mit Formeln zu ignorieren, die keine Werte aus einem anderen Arbeitsblatt zurückgeben. Im Großen und Ganzen funktioniert alles, außer dass die letzten 8 Zeilen mit tatsächlichen Daten übersprungen werden. Hier ist die OFFSET-Formel, die ich verwende.

=OFFSET('Beschaffungsprotokoll'!$A$1,0,0,ANZAHL(WENN('Beschaffungsprotokoll'!$B$8:$B$10003<>0,'Beschaffungsprotokoll'!$B$8:$B$10003)),24)

Ich kann nicht herausfinden, warum ich diese letzten 8 Zeilen verliere, es sei denn, es hat damit zu tun, dass ich den Bereich in Zeile 8 beginne? Ich habe den Bereich so geändert, dass er bei B1 beginnt, und jetzt werden die letzten 7 Zeilen übersprungen. Ich bin ratlos. Jede Hilfe ist sehr willkommen!

[Hier ist ein Link zur Datei][1]. Das funktioniert so, dass neue Daten in die Registerkarte „Daten exportieren“ eingefügt werden, die dann über Formeln in die beiden anderen übertragen werden. Es sind die leeren Zellen mit Formeln, die ich beim dynamischen Drucken zu ignorieren versuche.

Antwort1

Hinzugefügt, nachdem der Link bereitgestellt wurde:

Ja, die acht Zeilen sind das Problem, da die ersten sieben nicht mit COUNT() bearbeitet werden und die achte (B8 selbst) Text enthält und daher nicht zur Anzahl beiträgt. Aber wie erwähnt, können Sie das Problem nicht beheben, indem Sie den zweiten Bereich ändern. Sie müssen einfach 8 zum Ergebnis von COUNT() hinzufügen. Gehen Sie also wie in der unten am Ende gezeigten Formel vor, nur dass Sie 8 statt 7 hinzufügen. Alle Ihre Probleme sind dann gelöst.

(Randbemerkung: Der Grund dafür, dass durch die Änderung beider Bereiche auf B1 (im Gegensatz zu B8) die fehlenden Zeilen auf 7 geändert wurden, besteht darin, dass der Wert in B6 numerisch ist und auch so gezählt wird, sodass aus den acht zu wenig nur sieben zu wenig werden.)

Antwort2

Wie harrymcbereits angedeutet, sind für die Beantwortung dieser Frage definitiv weitere Informationen erforderlich, und sogar ein Screenshot könnte hilfreich sein.

Es scheint jedoch, dass Sie einen Bereich (B8:B10003) testen und nicht einen Bereich von B1:wo auch immer, da dieser Bereich nichts von dem dynamischen Material enthält. Tatsächlich könnte sein Inhalt sogar die Berechnung durcheinanderbringen. So weit, so gut.

Die Anzahl der fehlenden Zeilen lässt jedoch darauf schließen, dass Sie tatsächlich beabsichtigen, alles zu drucken, was in diesen ungetesteten Zeilen steht, da der dynamische Bereich anscheinend bei A1 beginnt und nicht bei A8 oder was auch immer. Die 8 fehlenden Zeilen im Vergleich zu den 7 in B1:B7 sind keine exakte Übereinstimmung, aber in Ihrer anderen, verwandten Frage geben Sie an, dass Sie genau das tun, was der andere Antwortende tut, aber es funktioniert für Sie nicht, während anderer Text darin nahelegt, dass Sie nur fast das tun, was er tut. Ich gehe also davon aus, dass hier möglicherweise die gleiche Ungenauigkeit gilt, und fahre fort.

Es scheint, als würden die dynamischen Daten in Zeile 8 beginnen und Spalte B ist eine praktische und genaue Quelle zum Erstellen des richtigen Druckbereichs. Und Sie möchten wahrscheinlich einige oder alle der sieben Zeilen oberhalb dieses Punkts als Start für den Bericht drucken, möglicherweise auch als Kopfzeile (aber wahrscheinlich nicht, oder bei so vielen beteiligten Zeilen würden Ihnen ein oder zwei Tausend fehlen).

Man geht davon aus, dass die Daten in diesem Bereich entweder numerisch oder unerwünscht sind, also COUNT()ist es großartig und Sie brauchen COUNTA()es nicht. Der Unterschied besteht darin, dass letzteres auch Textzellen zählt. Das erste potenzielle Problem: Vielleicht sind in den 10.000 Zeilen etwa acht dieser Werte tatsächlich Text. „WIE“ ist hier nur wichtig, um die Ursache dafür zu ermitteln (da es eindeutig nicht erwartet wird) und ist kein Vorläufer dafür, überhaupt zu überlegen, ob es das sein könnte oder nicht. Richten Sie also zwei Formeln ein, eine mit jeder Funktion über diesen Bereich, und prüfen Sie, ob ihre Ergebnisse dieselben sind. Wenn nicht, dann gibt es einige rothaarige Texteinträge in der Spalte. Diese werden nicht gezählt, sodass der Bereich so viele weniger als das Ende hat, das er haben sollte. Ehrlich gesagt, egal wie unwahrscheinlich Sie das halten, es ist absolut die wahrscheinlichste Fehlerquelle. Außerdem könnte es ein Teil des Problems sein und der Rest etwas anderes. Machen Sie den Test.

Weiter geht es mit dem Testen des genau richtigen Bereichs, das ist sicherlich entscheidend, also ein Lob dafür. Das ist jedoch nicht unbedingt genau der Bereich, in dem Sie den tatsächlichen Druckbereich generieren möchten. Nicht für sich allein. Angenommen, Sie möchten beginnend bei A1 drucken, sodass ungefähr sieben Zeilen der berechneten Gesamtsumme für die Zeilen 1 bis 7 verwendet werden, nicht für die tatsächlichen Daten. Mit anderen Worten: Angenommen, die Anzahl beträgt 2.433. Wie geschrieben wäre das der Bereich A1:X2433, aber da dies 2.433 Zeilen in den Zeilen 8 bis 10003 impliziert, würden Sie wirklich so viele UND sieben weitere wollen. Wenn die Berechnung also 2.433 Elemente findet, benötigen Sie wirklich den Bereich A1:X2440, nicht A1:X2433. Das würde allein dadurch sieben Zeilen vom Bericht abziehen.

Wie lässt sich das auf Ihre Formel anwenden? Sie müssen diese sieben Zeilen zur Ausgabe der COUNT()Funktion hinzufügen. Direkt nach der schließenden Klammer:

=OFFSET('Procurement Log'!$A$1,0,0,COUNT(IF('Procurement Log'!$B$8:$B$10003<>0,'Procurement Log'!$B$8:$B$10003))  +7,  24)

(direkt vor der „24“).

Ich wette, dass Sie dadurch sieben der fehlenden Zeilen erhalten. Und vielleicht existiert irgendwo in diesen 9.996 Zellen der Spalte B ein Texteintrag, der die anderen Zeilen enthält.

Das Ändern der Referenz von B8 auf B1 beim ersten Gebrauch würde Zeilen zur Zählung hinzufügen, wenn die Zeilen 1-7 Inhalt haben (da sie beim Gebrauch im Test zur Zählung hinzugefügt werden, wenn das bloße Zählen dies nicht tun würde) und Sie sagen, dass sie verloren gehen, nicht hinzukommen, also ist das nicht das Problem. Das Ändern beim zweiten Gebrauch würde sie wahrscheinlich (Sie müssen die genaue echte Tabellenkalkulationsseite sehen) verlieren, da die ersten sieben wahrscheinlich nicht numerisch sind. Excel ordnet Elemente Elementen zu, nicht Adressen Adressen. Das bedeutet, dass, wenn die ersten sieben Elemente des Bereichs nicht numerisch sind, ihre FALSE-Werte mit den numerischen Einträgen des Testbereichs (der bei B8 beginnt, vermutlich selbst ein numerischer Eintrag) abgeglichen werden. Daher würden die ersten sieben Elemente aus dem Bereich von Interesse bei der Zählung weggelassen, wodurch der dynamische Druckbereich sieben Zeilen von der richtigen Zahl entfernt wäre.

Wenn Sie die Bereiche übereinstimmen lassen und dem Ergebnis ihrer übergeordneten Funktion ( COUNT()) eine Sieben hinzufügen, erreichen Sie Ihr Ziel, ohne die Vergleiche durcheinander zu bringen. Wenn Sie das tun, sieht es bestimmt sehr richtig aus. Sie ändern nichts an der COUNT()Funktion, sondern fügen einfach die benötigte Sieben dahinter hinzu.

Abschließend möchte ich für alle, die es noch nicht bemerkt haben, erwähnen, dass Ihre Situation vermutlich eine ist, bei der Formeln Werte in einem fortlaufenden Block in den Zeilen zurückgeben, bis sie zu einem bestimmten Punkt nicht mehr zurückgeben, und dies den Rest des Wegs nach unten nie wieder tun. Sie haben also keine Daten in den Zeilen 23, 24, 2438, 2499 und 2900. Wenn diese fünf die einzigen Daten wären, wären sie in den Zeilen 8-12. Sie verwenden dies also nicht, um sozusagen die Zeilen nach unten zu „suchen“, sondern nehmen als Block zum Drucken die erste Zeile bis zur ersten leeren Zeile und kümmern sich nicht um den Rest. Dieser Ansatz würde überhaupt nicht funktionieren, wenn sie überall zu finden wären.

Es bedeutet auch, dass einige leere Zeilen zwischen den zurückgegebenen Daten nicht die Ursache des Problems sind und dass die Verwendung einer Formel wie der auf „basierend auf“ basierenden, FILTER()um sie alle in eine fortlaufende Gruppe zu packen, nichts bewirkt, da sie bereits vorhanden sind. (Und wenn das absolut falsch ist und sie überall mit leeren Zeilen dazwischen verstreut sind, dann ist das die Ursache Ihres Problems und es ist Zeit, sich FILTER()darum zu kümmern!)

verwandte Informationen