
Ich möchte die OFFSET-Funktion verwenden, um die Daten in einer Spalte zu verdreifachen. Ich habe jedoch einige doppelte Daten (manchmal mehr als 2 Wiederholungen), sodass ich nur einen davon verdreifachen möchte, nicht beide, und den anderen behalten möchte. Hier sind meine Daten und die Funktion:
=OFFSET($A$2,INT((ROWS($A$2:A2)-1)/3),0)
A
2 5YJSA3H17EFP49729
3 5YJSA3H17EFP41128
4 5YJSA3H17EFP30954
5 5YJSA3H17EFP30954
6 5YJSA3H17EFP30212
7 5YJSA3H17EFP30050
In diesem Beispiel wird 5YJSA3H17EFP30954 dupliziert, aber ich möchte nur bei einem davon OFFSET ausführen und das andere behalten, also möchte ich 4 Wiederholungen davon haben.
Antwort1
Wenn Sie diese in B2 und C2 eingeben
B2 =WENNFEHLER(WENN(UND(A2=A1;B1=3);1;WENN(UND(A2=A1;B1<3);0;3));3) C2 =WENNFEHLER(OFFSET(B2;-1;0)+OFFSET(C2;-1;0);0)
und füllen Sie dann die Spalten B und C damit aus. Sie erhalten eine Tabelle für:
B) wie oft sich jedes Element (in der gleichen Zeile) in Spalte C wiederholen soll
) und C) aus welcher A1-Offset-Zeile der wiederholte Wert ausgewählt werden soll.
Ich glaube nicht, dass dies mit Formeln erreicht werden kann.
Es muss VBA verwendet werden. Unten finden Sie ein „Sub“ (mit der oben ausgewählten Logik/Formeln), das die angeforderte Tabelle erstellt, wenn Ihre Tabelle in A1 beginnt.
SubcreateDupeTable() r = 1: c = 1 ' Annahme: für den Zugriff auf A1 mit Cells(r,c) br = 1: bc = c + 1 ' wo mit dem Einfügen von Kopien begonnen werden soll, Cells(br,bc) ' Wert in "B1" (oben) immer 3 pz = 3 Ausführen, solange Zellen (r, c).Wert <> "" a1 = Zellen(r, c).Wert a2 = Zellen(r + 1, c).Wert b1 = pz Wenn a2 = a1 und b1 = 3, dann Z = 1 Anders Wenn a2 = a1 und b1 < 3, dann Z = 0 Anders Z = 3 Ende, wenn Ende, wenn pz = Z Ausführen, solange Z > 0 Cells(br, bc).Value = Cells(r, c).Value ' kopiere einen Wert aus der Liste Z = Z - 1 br = br + 1 Schleife r = r + 1 Schleife End Sub
Das Ergebnis:
AB 1 5YJSA3H17EFP49729 5YJSA3H17EFP49729 2 5YJSA3H17EFP41128 5YJSA3H17EFP49729 3 5YJSA3H17EFP30954 5YJSA3H17EFP49729 4 5YJSA3H17EFP30954 5YJSA3H17EFP41128 5 5YJSA3H17EFP30212 5YJSA3H17EFP41128 6 5YJSA3H17EFP30050 5YJSA3H17EFP41128 7 5YJSA3H17EFP30954 8 5YJSA3H17EFP30954 9 5YJSA3H17EFP30954 10 5YJSA3H17EFP30954 11 5YJSA3H17EFP30212 12 5YJSA3H17EFP30212 13 5YJSA3H17EFP30212 14 5YJSA3H17EFP30050 15 5YJSA3H17EFP30050 16 5YJSA3H17EFP30050