Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

SVerweise Notentabelle

Forumthread: SVerweise Notentabelle

SVerweise Notentabelle
02.12.2024 21:07:44
Nadine
Hallo liebes Forum,

ich versuche gerade, meine Notentabelle zu modifizieren, komme jedoch irgendwie nicht weiter.

Zurzeit berechne ich die mündlichen Noten mit einer Tabelle und erhalte Dezimalzahlen. Diese Zahlen runde ich dann auf eine Dezimalstelle. Nun möchte ich die gerundeten Zahlen in einer anderen Zelle auf eine bestimmte Weise darstellen lassen.

https://www.herber.de/bbs/user/173945.xlsx

Beispiel: Aus einer 1,3 soll eine 1- werden, aus einer 1,6 eine 2+ usw. Ich habe das Ganze einmal in einer Beispieldatei dargestellt, vielleicht wird es so verständlicher. In der Datei habe ich es mit SVERWEIS versucht. Aber irgendwie habe ich einen Denkfehler.

Ich danke euch schon jetzt im Voraus für eure Hilfe! 😊

Viele Grüße
Nadine
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SVerweise Notentabelle
02.12.2024 21:15:59
{Boris}
Hi,

das ist schon ein wenig tricky. Obwohl die Zahlen in der Matrix auch mit mehreren Nachkommastellen keine Ungenauigkeiten anzeigen, sind sie dennoch (für den SVERWEIS) ungenau. Ich hab das mal "repariert" - siehe Datei: https://www.herber.de/bbs/user/173946.xlsx

VG, Boris
Anzeige
AW: SVerweise Notentabelle
02.12.2024 21:30:30
Nadine
Vielen Dank für die schnelle Antwort.

Habe es gerade mal gerundeten Zahlen versucht. Habe es in meine Tabelle mal geändert und neu hochgeladen. Dort wurden die Zahlen nun gerundet und dann funktioniert es leider nicht.

Gibt es noch eine andere Möglichkeit als SVERWEISE?

https://www.herber.de/bbs/user/173948.xlsx

Anzeige
AW: SVerweise Notentabelle
02.12.2024 21:40:55
Onur
Lass das FALSCH bei SVERWEIS einfach mal weg.
Bei FALSCH wir der EXAKTE Wert gesucht.
Und warum...
02.12.2024 21:42:57
{Boris}
Hi,

---lädst Du die selbe Datei nochmal hoch? Ich hab Dir doch die "reparierte" Datei zur Verfügung gestellt. Was passt damit nicht?
SVERWEIS mit Nachkommazahlen (obwohl sie auch mit mehreren Nachkommastellen "stimmen"), kann halt schon mal tricky sein. Das genau zu erklären führt hier aber zu weit.

VG, Boris
Anzeige
AW: Und warum...
02.12.2024 21:51:57
Nadine
ich habe deine Tabelle so in meine Ursprungsdatei kopiert und es funktioniert nicht. Ich habe gedacht ich zeige es nochmal wenn die Noten wirklich gerundet werden. Das war nicht böse gemeint. Sorry
AW: Und warum...
02.12.2024 21:54:16
Onur
Ich habe dir doch schon die Lösung deiner Probleme gepostet.
AW: Und warum...
03.12.2024 14:40:40
ExCeZ
Hallo Nadine,

bitte verwende die Liste von Onur, da deine Datei leider fehlerhaft ist.
Ich habe ein Makro durchlaufen lassen, um die Probleme zu überprüfen.

Fehlerbeschreibung:
Der Wert in den Zellen $A$7:$A$30 ("Kommanote") ist kein gültiger numerischer Wert.

Dabei habe ich das Makro auf Zelle B1 fixiert, sodass nur der Suchbegriff berücksichtigt wurde. Allerdings erkennt es die dahinterliegende Formatierung nicht korrekt. Ein einfaches Übernehmen der Formatierung aus einer anderen Zelle würde das Problem zwar beheben aber ich wollte dir mit dem Makro zeigen, dass tatsächlich ein Fehler vorliegt.

Mögliche Formeln, die du nutzen könntest:

=SVERWEIS(B2;$A$7:$B$57;2;0)
=XVERWEIS(B2;$A$7:$A$57;$B$7:$B$57;"-";0)
=INDEX(B7:B57;VERGLEICH(B2;A7:A57;0))

Alternativ wäre auch eine WENN-Funktion möglich, allerdings wäre das für diesen Zweck vermutlich zu aufwendig.

Macro:

Option Explicit
Sub CheckVLOOKUPIssuesWithSolutions()
Dim ws As Worksheet
Dim analysisSheet As Worksheet
Dim lookupValue As Range
Dim lookupRange As Range
Dim kommanoteColumn As Range
Dim rowCounter As Long
Dim cell As Range
Dim isSorted As Boolean

' Set the worksheet and relevant ranges
Set ws = ThisWorkbook.Sheets("Tabelle1") ' Passe den Namen der Tabelle ggf. an
Set lookupValue = ws.Range("B1") ' Hier steht der gesuchte Wert 'Suchberiff vom Sverweis
Set lookupRange = ws.Range("A7:B30") ' Bereich der SVERWEIS-Tabelle (Kommanote und Noten)
Set kommanoteColumn = lookupRange.Columns(1)

' Create or clear the "Analyse" sheet
On Error Resume Next
Set analysisSheet = ThisWorkbook.Sheets("Analyse")
If analysisSheet Is Nothing Then
Set analysisSheet = ThisWorkbook.Sheets.Add
analysisSheet.Name = "Analyse"
Else
analysisSheet.Cells.Clear
End If
On Error GoTo 0

' Write headers in the analysis sheet
analysisSheet.Cells(1, 1).Value = "Fehlerbeschreibung"
analysisSheet.Cells(1, 2).Value = "Lösungsvorschlag"
analysisSheet.Cells(1, 1).Font.Bold = True
analysisSheet.Cells(1, 2).Font.Bold = True

' Initialize row counter for analysis sheet
rowCounter = 2

' Check if lookup value is empty
If IsEmpty(lookupValue) Then
analysisSheet.Cells(rowCounter, 1).Value = "Der Suchwert (z.B. in Zelle B1) ist leer."
analysisSheet.Cells(rowCounter, 2).Value = "Trage einen gültigen Wert in die Zelle B1 ein."
rowCounter = rowCounter + 1
End If

' Check if lookup range is empty
If WorksheetFunction.CountA(lookupRange) = 0 Then
analysisSheet.Cells(rowCounter, 1).Value = "Der Suchbereich (z.B. A7:B30) ist leer."
analysisSheet.Cells(rowCounter, 2).Value = "Fülle die Tabelle in den Zellen A7:B30 mit gültigen Daten."
rowCounter = rowCounter + 1
End If

' Check if Kommanoten are text instead of numbers
For Each cell In kommanoteColumn
If Not IsEmpty(cell) And Not IsNumeric(cell.Value) Then
analysisSheet.Cells(rowCounter, 1).Value = "Wert in Zelle " & cell.Address & " ('Kommanote') ist kein gültiger numerischer Wert."
analysisSheet.Cells(rowCounter, 2).Value = "Konvertiere den Wert in Zelle " & cell.Address & " in eine Zahl."
rowCounter = rowCounter + 1
End If
Next cell

' Check if lookup value matches type in Kommanote
If Not IsEmpty(lookupValue) Then
If IsNumeric(lookupValue.Value) Then
If Not IsNumeric(kommanoteColumn.Cells(1).Value) Then
analysisSheet.Cells(rowCounter, 1).Value = "Der Suchwert (" & lookupValue.Value & ") ist eine Zahl, aber die Werte in der Spalte 'Kommanoten' sind Text."
analysisSheet.Cells(rowCounter, 2).Value = "Stelle sicher, dass alle Werte in der Spalte 'Kommanoten' numerisch sind."
rowCounter = rowCounter + 1
End If
Else
analysisSheet.Cells(rowCounter, 1).Value = "Der Suchwert (" & lookupValue.Value & ") ist kein numerischer Wert."
analysisSheet.Cells(rowCounter, 2).Value = "Stelle sicher, dass der Suchwert numerisch ist, wenn die Spalte 'Kommanoten' Zahlen enthält."
rowCounter = rowCounter + 1
End If
End If

' Check if the lookup table is sorted for approximate match
isSorted = True
For Each cell In kommanoteColumn
If cell.Row kommanoteColumn.Cells(kommanoteColumn.Rows.Count).Row Then
If cell.Value > cell.Offset(1, 0).Value Then
isSorted = False
Exit For
End If
End If
Next cell
If Not isSorted Then
analysisSheet.Cells(rowCounter, 1).Value = "Die Spalte 'Kommanoten' ist nicht aufsteigend sortiert."
analysisSheet.Cells(rowCounter, 2).Value = "Sortiere die Spalte 'Kommanoten' in aufsteigender Reihenfolge, wenn SVERWEIS mit ungefährem Vergleich verwendet wird."
rowCounter = rowCounter + 1
End If

' If no issues were found
If rowCounter = 2 Then
analysisSheet.Cells(rowCounter, 1).Value = "Keine Probleme gefunden."
analysisSheet.Cells(rowCounter, 2).Value = "Der SVERWEIS sollte ordnungsgemäß funktionieren."
End If

' Autofit columns in the analysis sheet
analysisSheet.Columns("A:B").AutoFit

MsgBox "Die Analyse wurde abgeschlossen. Siehe die 'Analyse'-Tabelle für Details.", vbInformation
End Sub

PS: Ich habe das Macro aus verschiedenen Bausteinen zusammengestellt und speziell für dieses Beispiel angepasst, daher nicht perfekt aber er sollte ja nur den Fehler ermitteln.

Viele Grüße
Meikel
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18