Der allgemeine schlaue excel-Fragen Thread
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
-
-
Moin,
ich bastel gerade was und checke nicht, wo mein Fehler ist. Ist eigentlich Kleinscheiß, aber klappt nicht
Hab eine Tabelle, die diverse geleistete Stunden aus verschiedenen Ecken zählt; in einem Feld kommt dann eine Stundenzahl im Format bzw. Formatierung "[h]mm;@" raus, die ich durch eine natürliche Zahl teilen will und die dann eine Zahl ergeben soll.
Konkret:
562:04 (Stunden bzw. Minuten) / 176 (8h*22 Arbeitstage) soll zu 3,19 FTE werden (gerundet)
Gibt es was eleganteres, als über die Tabelle die Sachen in Minuten umzuwandeln?we do not sow -
To convert hours and minutes to minutes, you have to multiply the hh:mm value by 1440
-
Hallo Leute,
ich habe ein Problem und mein Kopf ist verknotet.
Ich habe eine Liste mit 200 Datenpunkten, die verschiedene Merkmale aufweisen können.
Sollte ein Datenpunkt eine explizite Eigenschaft aufweisen, soll der komplett aus der Liste verschwinden.
Beispiel:
Person 1 A Person 1 A Person 1 A Person 2 A Person 2 A Person 2 B
Person 1 ist fine, weil die nur die Eigenschaft A aufweist.
Person 2 soll gelöscht werden, sobald sie etwas anderes als A aufweist, und fliegt hier entsprechend raus, weil sie nach diversen positiven Treffern auch B aufweist.
Hat jemand einen Lösungsansatz parat? Ich habe mich schon zu tode s-verwiesen und ver-IF't aber komme auf keinen grünen Zweig.
HumanlyPuma schrieb:
junge leg dir ne hantel ins büro oder geh kegeln
-
Ist A immer das selbe? Und gibt es nur ein A oder gibt es viele verschiedene A?Byron - Attributmagier
Der Korpothread
Oster schrieb:
Wenigstens shrodo denkt mit.
"some games just feel so unthrowable until you suddenly lost" -
Es gibt nur ein A.
HumanlyPuma schrieb:
junge leg dir ne hantel ins büro oder geh kegeln
-
In VBA wärs easy, ohne: Hilfstabelle goes brrrr
A4 bis C4 ist deine Ursprungstabelle, in Spalte C ist dein Wert "A")
mach ne zweite Tabelle
mach dir da ein =WENN(C4="A";4:4;"")
Das kopiert dir die Tabelle, wenn A vorhanden ist, ansonsten kopiert es nicht. Danach dann alles runterziehen. Danach sortieren (damit die leeren Zellen unten sind) und das dann als Werte kopieren und damit weiterarbeiten.Byron - Attributmagier
Der Korpothread
Oster schrieb:
Wenigstens shrodo denkt mit.
"some games just feel so unthrowable until you suddenly lost" -
Das hilft mir ja nichts.
Ich will keine A aussortieren, sondern den gesamten Eintrag der Person inkl. aller A's, sobald auch nur ein B auftaucht.
HumanlyPuma schrieb:
junge leg dir ne hantel ins büro oder geh kegeln
-
Dann hat er ja trotzdem noch Person 2 in der Liste, oder?
Meine Idee wäre nach B Filtern (oder allem was nicht A ist), das in eine Zweite Tabelle packen. Dann hast Du alle Namen, die aus der ursprünglichen Tabelle raus müssen.
Im Anschluss sverweis, um die zu löschenden Namen in der ursprünglichen Tabelle zu mappen.
Oder du kannst doppelte Werte entfernen, wenn du nicht drei Einträge Person 1 / A brauchst, und anschließend alle noch immer doppelt vorkommende Namen markieren und dann löschen.
-
Würde auch erstmal manuell filtern auf alle Einträge, die nicht "A" enthalten. Dann alle Personen in eine zweite Tabelle (Sheet "Filter") kopieren:
Person 2
In der ersten Tabelle eine Spalte hinzufügen und folgenden Text einfügen:
=IF(COUNTIF(Filter!A:A,Sheet1!A2)>0,"hide","not found")
Dann kannst du in der neuen Spalte "hide" rausfiltern und hast nur noch Einträge mit "A"
pers atr columnHide Person 1 A not found Person 1 A not found Person 1 A not found Person 2 A hide Person 2 A hide Person 2 B hide
Spoiler anzeigen Gibt sicher eine bessere Lösung, aber komme grade nicht drauf -
Post 1/2 da zulang:
Ich würde das eher Automatisieren mit einem Script.
Vorher:
Nachher:
Script:
JavaScript-Quellcode
- function main(workbook: ExcelScript.Workbook) {
- let eigenschaft = "A";
- let tableName = "Table1";
- var tableColumnPersonId = 0;
- var tableColumnEigenschaftId = 1;
- let table = workbook.getActiveWorksheet().getTable(tableName);
- //gets the table range between the header and total
- let tableRange = table.getRangeBetweenHeaderAndTotal();
- //gets the table values
- let tableValues = tableRange.getValues();
- //gets the number of rows and columns
- let tableRows = table.getRowCount();
- let personsToDelete = [""];
- for (var i = 0; i < tableRows; i++)
- {
- if (tableValues[i][tableColumnEigenschaftId] != eigenschaft)
- {
- personsToDelete.push(tableValues[i][tableColumnPersonId] as string);
- }
- }
- let rowsToDelete = [-1];
- for (var l = 0; l < tableRows; l++)
- {
- if (personsToDelete.includes(tableValues[l][tableColumnPersonId] as string))
- {
- rowsToDelete.push(l)
- }
- }
- rowsToDelete = rowsToDelete.reverse();
- for(var k = 0; k < rowsToDelete.length; k++)
- {
- if(rowsToDelete[k] >= 0){
- table.deleteRowsAt(rowsToDelete[k]);
- }
- }
- }
-
Post 2/2 da zu lang:
Ist nicht das optimalste, ist auch erst mein Zweiter Versuch mit ExcelScript.
Du findest das Oben in der Zeile "Automate", dann new Script, Code reinkopieren, Parameter anpassen, Run drücken. Hoffen. (Vorher Backup machen von der Datei)
Folgende Parameter sind anzupassen im Skript:
Zeile 3: Eigenschaft nach der gefiltert werden soll (zum behalten)
Zeile 4: Name der Tabelle
Zeile 5: Spaltenindex der PersonenSpalte (beginnt von links nach rechts mit 0)
Zeile 5: Spaltenindex der EigenschaftSpalte (beginnt von links nach rechts mit 0)
Es werden alle Personen gelöscht, die mindestens einmal nicht "A" aufweisen.
Hope that helps.Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von HappyTiger ()
-
Wenn das zu kompliziert ist, schau dir mal Power Query an, da kannst du Zeile oder Spalten löschen, die bestimmte Merkmale besitzen, wenn du im Bearbeiten Modus bist.
LG
PS: meine zwei Cent -
Weil ich immer von Power Query rede, aber nicht viel dazu sage, ein Doppelpost.
Finde diesen YT Kanal MyOnlineTrainingHub Gold wert für Excel
(Playlist zu Power Query)
youtube.com/playlist?list=PLmd91OWgLVSKnVrL0YxdOH61MAiqlFHac
Gute Nacht! -
Daten vernünftig strukturieren (eine Zeile je Person, nicht je Person und Eigenschaft), Duplikate entfernen, Profit.
-
ardet4 schrieb:
Daten vernünftig strukturieren (eine Zeile je Person, nicht je Person und Eigenschaft), Duplikate entfernen, Profit.
-
HappyTiger schrieb:
ardet4 schrieb:
Daten vernünftig strukturieren (eine Zeile je Person, nicht je Person und Eigenschaft), Duplikate entfernen, Profit.
-
ardet4 schrieb:
HappyTiger schrieb:
ardet4 schrieb:
Daten vernünftig strukturieren (eine Zeile je Person, nicht je Person und Eigenschaft), Duplikate entfernen, Profit.
Fraglich ob dein Vorschlag aber noch den zweck der Daten erfüllt, wir kennen den Kontext ja nicht. Mal abgesehen davon, dass "Duplikate entfernen" wie gesagt an der Aufgabe vorbeigeht.
War auch nicht böse gemeint. -
duplicates filtern actually der beste Ansatz für einfache Lösung, weil du dann einfach counten kannst welche Person mehrmals vorkommt
(außer es ist relevant, dass eine Person mit mehreren Einträgen auch mehrmals vorhanden ist) -
Das (mein) Problem ist wie folgt:
1. Ich habe die Daten in einem nativen Format; die Lösung sollte dafür passen
2. Meine Lösung soll nicht nur für mich sein, sondern auch für andere nachvollziehbar (und reproduzierbar)
Entsprechend sind zuviele individuelle Formatanpassungen scheiße.
Ich habs mit einem Script probiert, leider zeigte sich, dass die Daten bzw. Eigenschaften vom "Eingebenden" nicht immer korrekt geschrieben wird. So wird aus "meter" mal "meterr" (oder so).
Ergo habe ich jetzt einen Mix aus diversen Vorschlägen gebastelt.
Zuerst Suche ich alle Personen, die das Merkmal "B" aufweisen (per Filter) und kopiere sie in eine extra Tabelle. Dann suche ich per Verweis nochmal für alle Personen, ob sie in der Liste sind - wenn nicht, haben sie zwangsläufig nur das Merkmal A.
Ist leider nicht so, wie ich es gerne gehabt hätte, aber so verstehen es eben auch die anderen und können es adaptieren.
HumanlyPuma schrieb:
junge leg dir ne hantel ins büro oder geh kegeln
-
Benutzer online 7
7 Besucher