2016-07-20 2 views
0

Guten Tag allExcel: Wie ein Array verwenden Strings verketten, die zu einem criteread Abschnitt nächsten sind (If-Funktion)

habe ich eine Excel-Tabelle als Gebrüll in zwei Spalten. Ich weiß, wie man ein Array verwendet, wenn Funktion mit Summe alle Werte neben einer Spalte summiert, die die Kriterien wie in {=sum(if(A1:A5="YES",B1:B5)} erfüllt hat, aber wie man es mit Strings und Verkettungen macht, so dass sie das Ergebnis wie folgt zeigen

Dank für jede Hilfe

The Excel array

Edit: ich weiß, es ist eine einfache VBA Lösung, aber frage mich, ob es eine excell Weg ist, da es eine einfache Lösung, wenn es Werte und keine Strings war.

+1

Sind wir erlaubt eine VBA-Lösung? –

Antwort

1

Wenn ich Sie gehe davon aus Sie die relativ einfache VBA-Lösung nicht wollen, wo Sie durch die erste Liste Rekursion und verketten die Antworten dann können Sie den folgenden in B8 setzen:

=IFERROR(INDEX(Sheet1!$A$1:$A$6,SMALL(IF(Sheet1!$B$1:$B$6=$A8,ROW(Sheet1!$B$1:$B$6)-ROW(Sheet1!$B$1)+1),COLUMNS($B1:B1))),"")

Sie müßten sie ziehen über, wie es sie in separaten Spalten gesetzt werden, aber dann sollten Sie in der Lage sein, sie in eine einzige Spalte danach verketten.

Sie haben Ctrl und Shift- gedrückt haben, wenn die Eingabe, wie es eine Matrixformel ist.

+0

Dies wird nicht verkettet, ich muss die Formel nach rechts ziehen, um eine Transponierung der Antwort zu erhalten. Dann verketten. Sehr sehr hilfreicher Gedanke Danke –

0
  • Aktivieren Sie die Iteration in den Optionen. Die maximale Anzahl der Iterationen muss gleich oder größer als die Anzahl der Zeilen sein.
  • hinzufügen =IF(D1=100;1;D1+1) D1 Zelle
  • Dies ist die Formel in Zelle E1 für die Stark-Häuser: =IF(D1=1;"";IF(D1-1>COUNTIF(B:B;"Stark");E1;E1&INDEX(A$1:A$100;SMALL(IF(B$1:B$100="Stark";ROW($1:$100));D1-1))))

(. Ich hoffe, dass ich die englischen Namen der Funktionen richtig bekam)

Ich habe eine Information verpasst: Sie müssen die Funktion als Array-Funktion eingeben.

Danke an http://www.excelformeln.de/formeln.html?welcher=155

+0

Für diese Formel kann es nützlich sein, keine weiteren Einträge unterhalb der Rohdaten zu haben. Daher sollten die Ergebnisse in einer anderen Spalte (E in diesem Fall) sein. Ich denke jedoch, dass Sie einfach 100 durch die entsprechende Anzahl von Zeilen Ihrer Rohdaten ersetzen können. –

+0

Sorry für die dumme Frage, aber nicht hinzufügen = IF (D1 = 100; 1; D1 + 1) zu D1 wird eine zirkuläre Furula verursachen? –

+0

Wenn Sie Iteration aktiviert haben, ist das in Ordnung. –

0

War wirklich Strugling, um es richtig zu machen und bekam schließlich eine Antwort von einer Stackoverflow Frage, wie ganze Spalten verkettet werden.

die Daten über B sortiert und dann verwendet = TRANSPOSE (A4: A6)

Dann F9 Auf die Funktion, diese Linie zu bekommen = { "Mansion1", "Mansion 2", "Haus 3"}

kopiert und verketten und entfernen sie einfach das {

aber das war nicht ideal ich als Datensatz wollen dies auf verwenden ist 2500+ Linien :( manualy es tat, obwohl :(:(aber die oben versuchen Antworten für zukünftige Verwendung

Verwandte Themen