
Ich habe die folgenden zwei Arrays:
{a,b,c}
{d,e,f}
Wie bekomme ich dieses Array?
{a*d,b*e,c*f}
Beispielsweise ist ein Array {0,1,1}, ein anderes {255,122,0}. Ich brauche dieses Array:
{0,122,0}
Es ist wirklich so einfach.
Dies hängt mit diesem Thread zusammen:Excel: Suche nach der letzten Zelle im gefilterten Bereich, die nicht leer und nicht Null ist
Ich habe festgestellt, dass diese Formel SUBTOTAL(2,OFFSET(R5,ROW(R5:R200)-ROW(R5),0)) 1 für die gefilterten Daten (sichtbar) und 0 für die herausgefilterten Daten (unsichtbar) ergibt. Dies ist also ein Array mit 196 Elementen von 0 oder 1.
Ein anderes Array, OFFSET(R5,ROW(R5:R200)-ROW(R5),0), ist im Grunde nur R5:R200.
Wenn ich jedes Element eines Arrays mit seinem entsprechenden Gegenstück in einem anderen Array multiplizieren und ein neues Array erhalten kann, gibt der folgende LOOKUP die letzte von Null verschiedene Zahl in den gefilterten Daten aus.
=VERWEIS(2,1/NEUES-ARRAY,R5:R200)
Dies liegt daran, dass das SUBTOTAL-Array für jede gefilterte (sichtbare) Zelle 1 ergibt und wenn es mit dem Zellinhalt multipliziert wird, werden die sichtbaren Zellen mit einem Inhalt von 0 im neuen Array zu 0 (die zweite 1 in {0,1,1} mal 0 in {255,122,0}). Daher wird die letzte Zelle ungleich Null von LOOKUP erfasst.
Antwort1
Wie @Jeeped sagte, verwenden Sie INDEX:
INDEX({0,1,1}*{255,122,0},0)
Dadurch wird das Array {0,122,0} in eine andere Formel zurückgegeben.
Wenn wir die Zahlen addieren, können Sie Folgendes sehen:
=SUM(INDEX({0,1,1}*{255,122,0},0))
Das gibt 122 zurück
Antwort2
Antwort3
Angenommen, in den Zellen A1, B1 und C1 befinden sich jeweils 1, 2 und 3. Und in den Zellen A2, B3 und C2 befinden sich jeweils 4, 5 und 6.
In Zelle A3 können Sie die Formel eingeben:
= A1:C1 * A2:C2
und es wird ein Array von {4,10,18} generiert, das jeweils in A3, B3 und C3 übergeht.