Gibt es eine Möglichkeit, einen Namensbereich als Arraykriterium für eine Summenformel (countif ()) in Excel 2010 zu verwenden?

2

Bildspalte Eine Fülle von Kommentaren, wie z. B. das Feedback zu einer Umfragefrage. Jetzt Bildspalte B mit einer Formel, die die Vorkommen bestimmter Schlüsselwörter in jedem Kommentar zählt. Ich verwende derzeit diese Formel in Spalte B: SUMME (COUNTIF (A27, {" LBNL ", " Lawrence Berkeley ", " LBL ", "Lawrence Lab *"}))

Da die Liste auf dem Weg wächst und schrumpft und ich am Ende mehrere ähnliche Formeln (für verschiedene Kategorien) habe, möchte ich die Liste stattdessen in einem benannten Bereich steuern und von dort aus darauf verweisen.

Angenommen, meine Liste ist wie folgt und hat den Namensbereich search_items1

  • LBNL
  • Lawrence Berkeley
  • LBL
  • Lawrence Lab

Meine Formel würde dann wie folgt aussehen: SUM (COUNTIF (A27, search_items1)).

Beachten Sie die Verwendung von * für Platzhalter, die eine weitere Herausforderung darstellt, aber ich kann die obige Formel nicht zum Funktionieren bringen, auch ohne *. Gibt es eine Möglichkeit, diese Arbeit zu machen? Die Lösung mit dem Wildcard * wäre ideal.

Alternativ könnte ich auf eine Zelle verweisen, die aus dem Namensbereich zusammengesetzt ist und folgendermaßen aussehen würde: {" LBNL ", " Lawrence Berkeley ", " LBL ", "Lawrence Lab *"}. Ich habe es versucht, aber die Formel interpretiert es als einen Textblock.

Ich habe mehrere Syntaxvarianten und unzählige Google- und Super-User-Suchen ausprobiert. Bitte helfen Sie.

daniellopez46
quelle
Übrigens versuche ich, VBA zu vermeiden, wenn es überhaupt möglich ist
daniellopez46
Es scheint für mich zu funktionieren und ich arbeite in Excel 2007. Das einzige Problem mit der aktuellen Formel ist, dass Sie nur in Zelle A27 zählen. Stellen Sie außerdem sicher, dass Sie Strg + Umschalt + Eingabetaste verwenden, da die Formel eine Array-Funktion ist (oder SUMPRODUCTstattdessen verwenden SUM). Der benannte Bereich kann das Sternchen enthalten und wird als Platzhalter betrachtet.
Jerry
Ich versuche, für jede Zelle (also die Einzelzellenreferenz anstelle eines Bereichs) die Anzahl der Instanzen zu zählen, zum Beispiel, wenn Zelle A1 "LBNL" oder "LBL" oder beides enthält. Bei den ersten beiden sollte die Formel 1 und bei den zweiten 2 zurückgeben. Bei mir funktioniert das nur für das erste Element im Namensbereich. Es wird also eine Zelle mit einem einzelnen Text von "LBNL" gezählt, aber wenn es "LBNL LBL" hat, wird es 0 statt 2 zurückgeben. Sind Sie sicher, dass es für Sie funktioniert? Gibt es im letzteren Beispiel 2 für Sie zurück?
Daniellopez46
Übrigens habe ich CSE ausprobiert und sumproduct und stattdessen einen Bereich verwendet, aber es hat immer noch nicht funktioniert: {= SUMPRODUCT (COUNTIF (A27: A27, search_items1)}
daniellopez46
1
Okay, was Sie jetzt beschreiben, ist nicht das, was ich mir nach dem Lesen Ihrer Frage vorgestellt habe. Ich dachte, dass die Spalte viele Kommentare enthält, und Sie möchten die Anzahl der Zellen zählen, die LBNL(und nichts anderes in derselben Zelle) Lawrence Berkeleyusw. haben , und für den vierten Text jede Zelle, die mit beginnt Lawrence Lab. Was Sie jetzt beschreiben, ändert alles, da Sie jetzt die Platzhalter setzen müssen , um das erwartete Ergebnis zu erzielen. Setzen Sie vor und nach dem zu zählenden Text ein Sternchen. Und Sie müssen CSE nicht mit verwenden SUMPRODUCT, deshalb habe ich es vorgeschlagen, über SUMdie Sie brauchen.
Jerry

Antworten:

5

Was macht Ihre Formel:

=SUM(COUNTIF(A27,{"LBNL","Lawrence Berkeley","LBL","Lawrence Lab*"}))

ist count 1, wenn die Zelle A27 ist LBNL, oder Lawrence Berkeleyoder LBLoder Lawrence Lab*(die hier *als Platzhalter fungiert).

Wenn Sie also eine Zelle haben LBNL, erhalten Sie 1 als Ergebnis. Haben Dr. LBNLwird zu 0 führen.

Wenn Sie eine Zählung erhalten möchten, 1wenn die Zelle mindestens 1 enthält LBNL, müssen Sie Platzhalter auf beiden Seiten des Texts verwenden, und zwar:

=SUM(COUNTIF(A27,{"*LBNL*","*Lawrence Berkeley*","*LBL*","*Lawrence Lab*"}))

Sie können einen benannten Bereich erstellen und stattdessen dort ablegen, dies wird jedoch zu einer Array-Formel, die nur mit Ctrl+ Shift+ funktioniert Enter:

=SUM(COUNTIF(A27,search_items1))

Jetzt können Sie verwenden SUMPRODUCT, um zu vermeiden, dass Sie CSE verwenden müssen, um diese Formel zu verwenden:

=SUMPRODUCT(COUNTIF(A27,search_items1))

Wenn Sie jedoch eine Zelle haben, LBNL LBNLdie das Ergebnis enthalten soll 2, ist dies eine weitere Angelegenheit, da COUNTIFder Job abgeschlossen ist, sobald er gefunden hat, wonach er in einer Zelle gesucht hat, und zurückkehrt 1.

In diesem Fall würde ich vorschlagen, jede zu überprüfende Zelle zu zählen (da die obige Funktion verwendet werden kann, um ganze Spalten zu untersuchen):

=SUMPRODUCT((LEN(A2)-LEN(SUBSTITUTE(A2,search_items1,"")))/LEN(search_items1))

Bildbeschreibung hier eingeben

[Beachten Sie jetzt, dass Sie die Sternchen löschen müssen, da dies SUBSTITUTEfunktioniert.]

Jerry
quelle
Sie wissen, ich habe mich über das letzte Szenario gewundert, aber nicht einmal daran gedacht, mein Glück zu drücken und zu fragen. Danke noch einmal. Gut gemacht!
Daniellopez46
@ daniellopez46 Ich suchte nach einer Möglichkeit, alle Zählungen im letzten Teil in einer einzelnen Zelle zu erhalten, bis jetzt hatte ich kein Glück ^^; Ich nehme an, Sie müssen sich vorerst mit mir abfinden. Wenn ich eine Alternative vor einer anderen finde, werde ich es Sie wissen lassen!
Jerry
1

Es muss nicht immer eine Formel sein. Es kann auch ein Bereich sein. Auf diese Weise können Sie eine Tabelle sauber halten.

Sie können ein benanntes Array über den Namensmanager definieren. Rufen Sie den Namensmanager über das Formelfeld auf und erstellen Sie einen neuen Namen. Geben Sie ihm einen eindeutigen Namen (z. B. "BinWithMarks") und fügen Sie diesen in das Feld "Bezieht sich auf:" ein:

={100,89,84,79,74,69,64,59,54,49,39,0}

Ebenso können Sie die relevanten Noten wie folgt hinzufügen, indem Sie Noten als Namen verwenden:

={"A+","A","A-","B+","B","B-","C+","C","C-","D","E"}

Nachdem Sie Ihre Auswahl bestätigt haben, können Sie mithilfe dieses Arrays die relevante Note für einen Schüler mithilfe einer Kombination aus Index- und Übereinstimmungsformeln suchen.

=INDEX(Grades,MATCH(N11,BinWithMarks,-1))
Martien Lubberink
quelle