Warum Wickel ein Excel Matrixformel in einer Summe nicht die Summe der Inhalte in diesem Fall produzieren?

StackOverflow https://stackoverflow.com/questions/808011

  •  03-07-2019
  •  | 
  •  

Frage

Clever Menschen,

In Excel, scheint es, dass in einer SUM eine Matrixformel Umwickeln produziert nicht die Summe des Inhalts des Arrays in allen Fällen. (Das heißt, es mir scheint,. Klar, ich konnte gut zu verwechseln)

Dies kam bei dem Versuch, das Äquivalent eine innere Verknüpfung in Excel zu schreiben. Aus Gründen Excel für Mac beteiligt, mache ich das ohne Visual Basic oder Microsoft Query zu verwenden: nur Matrixformeln und INDEX / MATCH. Ich habe, glaube ich, gelungen, abgesehen von diesem bizarren Verhalten, das ich ratlos bin zu verstehen.

Derzeit bin ich eine Flickschusterei, aber es wäre schön, nicht zu müssen. Jede Hilfe oder Ratschläge wäre sehr sehr geschätzt.

Im Folgenden gibt die Frage:

Tabelle 1

key | fkey
----+------
  a |   x
  a |   y
  b |   x
  b |   y

Tabelle 2

key | value
----+------
  x |   1
  y |  10

Das Layout oben sollte darstellen, wie diese zwei kleinen Tabellen in der Tabelle angezeigt: nichts klug vorgeht. Die vier offensichtliche Bereiche werden als table1.key, table1.fkey, table2.key und table2.value benannt.

So, dann die innere Verknüpfung. Ich würde diese Werte aus Tabelle 2 wie die in Tabelle 1 zu einem bestimmten Schlüssel entsprechen, mit der Join auf `table1.fkey = table2.key‘. Eingabe der Formel:

{=("a"=table1.key)*INDEX(table2.value, MATCH(table1.fkey, table2.key, FALSE))}

in zwei vertikale Zellen gibt das gewünschte Ergebnis; nämlich:

1
10

(Cool, oder was?) So weit, so gut. Aber jetzt will ich eigentlich die Summe der beiden Zahlen oben. Also wickelte ich einfach die Formel oben in einer Summe, und trat in das Ergebnis in einer Single Zelle:

{=SUM(("a"=table1.key)*INDEX(table2.value, MATCH(table1.fkey, table2.key, FALSE)))}

Ergebnis?

2

Hat jemand jeder Ahnung, was auf der Erde vor sich geht?

James

War es hilfreich?

Lösung

Das Argument des row_num Index kann nicht sein, wenn eine Reihe in einer einzelnen Zelle Matrixformel verwendet. Die INDEX-Funktion wird immer Rückkehr 1. Try this

=SUM(INDEX(table2.value,{2,1}))

Es wird immer 10 zurückkehren, weil INDEX wird nur das erste Element des Arrays an. Ich weiß nicht, warum sie unterschiedlich für einzelne Zellmatrixformeln vs Multizellen arbeiten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top