Verwenden der GCD-Funktion mit Arrays in Excel

372
Peach_kefir

Ich habe Probleme beim Bestimmen der GCD aus einem Datensatz. Ich versuche, die Menge der Artikel in einer Schachtel eines bestimmten Artikels in einem Lagerhaus zu ermitteln, ohne jeden Artikel in den Regalen physisch anzusehen.

Hier ist ein Beispieldatensatz, den ich aus Verkaufsaufträgen erstellt habe.

0 Part1 36 Part1 12 Part1 18 Part1 6 Part1 0 Part1 6 Part1 36 Part1 36 Part1 20 Part2 5 Part2 15 Part2 20 Part2 25 Part2 0 Part2 30 Part2 

Wenn ich das hier anschaue, kann ich sehen, dass Part1 in Boxen zu 6 kommt. Part2 wird in Boxen zu 5 geliefert. Das ist die Rendite, nach der ich suche.

Ich fühle mich wie ich nahe bin

=GCD(SUMPRODUCT(--(A$1:A$16),(B$1:B$16=B1)),A1)

oder

=GCD(SUMPRODUCT(--(A$1:A$16)*(B$1:B$16=B1)),A1) 

aber es funktioniert nicht ganz.

Im Grunde möchte ich so etwas SUMIF. Eine GCDIFFunktion wo=GCDIF(range,criteria,[GCD range])

Ist das möglich?

2
Um andere Leser und mögliche Antworten zu verdeutlichen, werden alle Teilenummern wie in der Frage zusammengefasst oder sind sie eine Zufallsliste? Gibt es relativ wenige Datensätze und ist die Liste statisch, sodass Sie Gruppenumbrüche finden und diese in der Formel hart codieren können? Angenommen, Sie haben nur wenige Datensätze für ein Teil, und es handelt sich dabei um Vielfache des gleichen Vielfachen (z. B. Box mit 5, aber die Datensätze sind 10 und 20). Wird eine Antwort von 10 gut genug sein? fixer1234 vor 6 Jahren 0
Die Teilenummern sind in Gruppen zusammengefasst, aber es gibt mehr als 40.000 Datensätze, sodass das manuelle Finden der Gruppenumbrüche nicht möglich ist. Wir werden auf das Problem eines Vielfachen desselben Vielfachen stoßen, was zu einer größeren geschätzten Boxgröße als der tatsächlichen Größe führt. Für diese Übung ist die Schätzung jedoch nahe genug und alle Fehler können durch den Benutzer behoben werden, der Kaufaufträge erstellt. Peach_kefir vor 6 Jahren 0

2 Antworten auf die Frage

3
pat2015

Sie können GCDs verwenden, die in einer IF in Arrayformeln eingeschlossen sind, um die GCD für jeden Part abzurufen. Siehe das Beispiel unten.

Beispieldaten befinden sich in den Zellen A1: B15.

Geben Sie in C1 die folgende Formel ein und drücken Sie CTRL+ SHIFT+ ENTERinnerhalb der Formelleiste, um eine Array-Formel zu erstellen. Die Formel wird nun in geschweifte Klammern eingeschlossen, um anzuzeigen, dass es sich um eine Array-Formel handelt.

=GCD(IF($B$1:$B$15=B1,$A$1:$A$15,0)) 

Ziehen Sie es einfach bis zu den vorgesehenen Reihen nach unten.

enter image description here

0
Rajesh S

Diese Lösung hat einen anderen Ansatz. Die Verwendung von Ifmit CHOOSEkann auch die findet GCDDatenbereich.

enter image description here

Schreiben Sie diese Formel in Zelle F73und füllen Sie sie aus.

=IF(E73=$E$71,GCD(CHOOSE(1,D$73:D$78,D$79:D$81)),IF(E73=$F$71,GCD(CHOOSE(2,D$73:D$78,D$79:D$81)),GCD($D$82:$D$83))) 

Beachten Sie, passen Sie die Zellverweise in der Formel nach Bedarf an.