Gewusst wie: anwenden einer logischen ODER, um ein array in Excel
Ich versuche über Excel machen die mir ein array von ORing zwei arrays. Als Beispiel, nehmen wir zwei arrays A1:A3
werden 7
, 8
, -3
und B1:B3
werden 4
, -8
, -8
.
Dieser sollte ganz einfach sein, aber es scheint, dass
OR ( A1:A3 > 0 ; B1:B3 > 0 )
zurück TRUE
anstelle der array-ich erwarte (TRUE, TRUE, FALSE)
.
Natürlich könnte ich mit einem schmutzigen trick, wie
(((A1:A3 > 0)*1 + (B1:B3 > 0)*1) >= 1) *1
aber wer möchte zu behaupten, dass?
Auch, es ist wahrscheinlich etwas suchen, um "CSE (Strg+Shift+Enter) Formeln" ( http://www.mrexcel.com/articles/CSE-array-formulas-excel.php ), aber es sieht wirklich so aus, wie schwarze Magie.
Habe ich da etwas verpasst einfach?
Für diejenigen neugierig, die eigentliche Formel, die ich versuche zu bauen ist ein wenig komplexer, natürlich. Es versucht zu zählen (über SUMPRODUCT
) alle Zeilen, in denen (status == A OR status == B) AND Date = some cell
. Die ODER ich Suche einfach nur ein array von meinen SUMPRODUCT
und ist nicht definiert in Zellen (das wäre ja zu einfach).
InformationsquelleAutor PPC | 2012-04-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie in der Regel nicht verwenden, ODER oder UND in "array-Formeln", weil, wie Sie entdeckt haben, hier, Sie kehren nur ein einziges Ergebnis (UND das ist nur WAHR, wenn alle Bedingungen WAHR sind ODER WAHR ist, ist alle WAHR sind, wie zu erwarten wäre, also in Ihrem Beispiel erhalten Sie den Wert TRUE, solange mindestens einer der 6 Werte positiv).
Ich würde verwenden etwas ähnliches wie dein Vorschlag, mit + anstelle von ODER wirksam, obwohl Sie nicht brauchen, die ersten zwei *1 da der + - co-erces, so würde dies ausreichen,
=((A1:A3 > 0) + (B1:B3 > 0) >0) *1
obwohl, wenn Sie eine einzelne Spalte, die können das eine oder andere ist dann, dass die sich gegenseitig ausschließenden, sicherlich, vielleicht muss nur
=(A1:A3="A")+(A1:A3="B")
Danke für die Erklärung. Noch Hoffnung für eine "sauberere" Formel aber.
Kommt wohl auf deine definition von "sauberer"....aber ich vermute, es gibt keine elegantere Art und Weise.....vielleicht mit WENN-Funktionen wird transparenter, z.B.
=IF(A1:A3>0,1,IF(B1:B3>0,1,0),0)
......aber man müsste "array eingeben", auch innerhalb der SUMPRODUCT-FunktionIch fand diesen Artikel hilfreich sein: dailydoseofexcel.com/archives/2004/12/04/... und cpearson.com/excel/arrayformulas.aspx
InformationsquelleAutor barry houdini
Einen sauberen und relativ einfachen Weg, um dieses ist die Verwendung von geschachtelten IF-Anweisungen:
Diese gibt TRUE zurück, wenn die Zahl in A größer als 0 ist, wird dann, wenn nicht, gibt TRUE zurück, wenn die Zahl in B ist größer als 0, aber ansonsten gibt Sie FALSE zurück.
Im Grunde sind Sie einfach schreiben Sie Ihre eigenen ODER Funktion. Das gleiche können Sie tun mit UND. So lange, wie Sie über Bedingungen und Habenichtse, Sie können machen alles, was sonst noch aus Ihnen heraus.
InformationsquelleAutor user2623027
Habe ich eine Array-Formel für den Mittelwert von bestimmte Daten innerhalb einer Tabelle. Zum Beispiel, innerhalb der Daten es wurden Gruppen X,Y und Z. ich wollte die Mediane für zwei Arten von Daten, X und Y, so konnten nicht die ODER-Anweisung innerhalb des Arrays.
Was ich Tat, war eine neue Spalte in der ursprünglichen Daten-set. Es war, WENN Spalte A=X oder A=Y, Anzeige "1", WENN Nicht die Anzeige "0"
Ich schrieb dann die Array-Formel basiert auf die neue Spalte, da alle Daten, die Gruppen wurden umgegliedert in dieser Spalte als entweder 1 oder 0, die ich nicht mehr brauchte ODER Aussage innerhalb des Arrays.
Die für mich gearbeitet, und ich kann problemlos kopieren und einfügen von neuen Daten in der ursprünglichen Tabelle, ohne in Unordnung zu dieser neuen IF-Anweisung, so ist es leicht zu aktualisieren.
InformationsquelleAutor Byron
Können Sie die
IF
Funktion mit der array-Ergebnisse und es wird Ihnen eine Serie von 1 und 0 als ODER. Zum Beispiel:Ich finde, dass dies der einfachste Weg.
InformationsquelleAutor Sapan Gupta