Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Wertabfrage aus mehr dimensionaler Matrix

Frage Microsoft Microsoft Office

Mitglied: Nichita

Nichita (Level 1) - Jetzt verbinden

21.09.2014 um 15:53 Uhr, 1539 Aufrufe, 2 Kommentare, 2 Danke

Hallo,

ich möchte einen Wert aus einer Matrix ablesen in Abhängigkeit von 3 Variablen.

Das erste Bild zeigt die Tabelle in der der Wert "Preis pro KG" aus der Matrix eingefügt werden soll.

4f8a87345efb35c9b6ef3c98fb26ea32 - Klicke auf das Bild, um es zu vergrößern

d.h. Ich möchte einen Wert in der Zelle "Preis pro KG"


Hier in Bild 2 sieht man die Matrix aus der der Wert "Preis pro KG" ausgelesen werden soll.

757f0944c6af7513fe54e19d4e04a8a2 - Klicke auf das Bild, um es zu vergrößern


1. Sendungsgewicht, PLZ und Land aus Bild 1 entscheiden über den Wert aus der Matrix in Bild 2.

z.B. Erste Zeile ist Sendungsgewicht 900 KG, PLZ = 5 und Land ist DE
d.h. er soll aus der Matrix den Wert: 7,000 in die Tabelle aus Bild 1 reinschreiben.

Wie lässt sich das mit einer Formel lösen ?

Danke schonmal

Mitglied: colinardo
LÖSUNG 21.09.2014, aktualisiert 07.10.2014
Hallo Nichita,
das lässt sich mit einer Matrix(Array)-Formel erledigen. Ich habe dir dazu mal ein Beispiel-Sheet erstellt:
search_value_in_matrix_249785.xlsx

4cb7107fe43eeedb8094f21bed2716ab - Klicke auf das Bild, um es zu vergrößern

Die Formel verwendet die Funktionen Index() und Vergleich() in Kombination als Matrix-Formel.

BITTE BEACHTEN: Dies ist eine Matrix-Formel. Man muss die Formel mit STRG-SHIFT-ENTER abschließen anstatt nur mit einem "einfachen" Enter. Eine Matrixformel erkennt man in Excel daran das in der Formelzeile die Formel mit geschweiften Klammern eingefasst wird. Diese darf man jedoch nicht manuell eingeben.

Die Formel zerlegt:

Die Funktion Index() liefert aus einer Matrix den jeweiligen Wert mit Hilfe von einer Zeilen- und Spaltenangabe als Nummer. Die Matrix ist im Beispiel die Tabelle mit unseren Quelldaten $A$17:$F$19.

=INDEX($A$17:$F$19; Zeilennummer; [Spaltennummer])

Die Zeilennummer ermitteln wir nun mit der Funktion Vergleich(). Mit dieser suchen wir nach einer 1, welche aber nur zurückgegeben wird wenn das zweite Argument ($A$17:$A$19=C2)*($B$17:$B$19=B2) als Ergebnis eine 1 liefert. Dieses Konstrukt funktioniert nur als Matrix-Formel und nur ergibt nur eine 1 wenn PLZ und LAND in der Zielmatrix übereinstimmen. Die Vergleich-Funktion liefert als Ergebnis die relative vertikale Position in der Matrix, also die passende Zeile.

=INDEX($A$17:$F$19;VERGLEICH(1;($A$17:$A$19=C2)*($B$17:$B$19=B2);0); [Spaltennummer])

Nun kommen wir zur Spalte. Dies machen wir ebenfalls mit der Funktion Vergleich(). Diesmal aber mit einer Liste von Werten: VERGLEICH(D2;{0;501;1001;2001})+2
Dies vergleicht nun das Gewicht unserer aktuellen Zeile mit einer Matrix von Werten die die Grenzen der jeweiligen Gewichtsklassen darstellen. Die Funktion fällt dabei immer auf den nächst niedrigeren Wert in der Matrix zurück und gibt dessen Position aus. Zu dieser Positionsangabe addiert man dann noch die Anzahl an Spalten die in der Matrix vor den Gewichtsklassen stehen.
Damit haben wir unsere gesuchte Spalte und die Formel ist komplett:

=INDEX($A$17:$F$19;VERGLEICH(1;($A$17:$A$19=C2)*($B$17:$B$19=B2);0);VERGLEICH(D2;{0;501;1001;2001})+2)

Hoffe das war soweit verständlich beschrieben

Grüße Uwe
Bitte warten ..
Mitglied: colinardo
23.09.2014, aktualisiert um 22:01 Uhr
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen. Merci.
Bitte warten ..
Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(6)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Heiß diskutierte Inhalte
Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Batch & Shell
gelöst Batch um Benutzer aus Sitzung abzumelden (15)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Linux
gelöst Google Chrome startet nicht (12)

Frage von Thomas91 zum Thema Linux ...