Excel - flytta rader från ett blad till ett annat

Trädvy Permalänk
Medlem
Plats
kw
Registrerad
Mar 2009

Excel - flytta rader från ett blad till ett annat

Hej

Börjar med att tala om att jag absolut inte är någon van användare utav excel men jag hoppas kunna få ordning på detta med hjälp utav någon som kan.

på blad 1 har jag "pågående jobb". Det ser ut så här

Kolumn A
Namn

Kolumn B
Styck

Kolumn C
Vikt

Till mitt problem: Jag skulle vilja

1. Med hjälp utav kommando/rullista eller dyl. kunna välja rad/-er som flyttas från blad 1 till nästa blad som då får bli "färdiga jobb". Typ att om jag markerar E kolumnen med x så vet excel att den ska flytta hela den raden till nästa blad.
2. Det vore även önskvärt att, på båda bladen, om man kunde få fram totalt antal Namn + total vikt på det som står.

är detta något som går "lätt" att ordna eller är det jätte avancerat

Trädvy Permalänk
Medlem
Plats
Kristianstad
Registrerad
Feb 2011

Förstår jag det rätt ifall jag påstår du har det så här:

3st kolumner med fakta som du fyller i vilket motsvarar jobb.

Sedan vill du ha en 4:e kolumn som styr.
Dvs det ser ut något liknande:

Blåa stenar --- 48st --- 900kg
Gröna stenar --- 9st --- 15kg

Är du då klar med gröna stenar skriver du
Gröna stenar --- 9st --- 15kg --- X

Då skall excel automatiskt kopiera (eller klippa ut?) raden för att därefter klistra in på ett annat blad.

Skall absolut vara enkelt att göra ifall man använder formler. Behöver bara veta exakt hur det skall se ut (kopiera/klippa ut) osv.

På fråga två, du vill att du totalt ser antalet "jobb" som både är aktuella och avklarade. Likaså med vikten på "jobben" tillsammans?
Också väldigt enkelt ifall det är så jag förstått dig.

Kan skriva ett ark till dig och skicka över med formlerna i som du kan arbeta vidare i.

Trädvy Permalänk
Medlem
Plats
kw
Registrerad
Mar 2009

@joel.wedberg:

Ja precis så.

när man är klar med ett jobb så vore det ypperligt om man typ kunde göra så att det jobbet flyttades över (klipps ur) från blad 1 till 2 genom att markera med x (eller vad som nu blir smidigast att göra). Sedan att man för varje blad får summor på vad som är på respektive blad..
Så att blad 1 hela tiden är sådant som är pågående och blad två blir sådant som är avslutat.

typ blad 1 - pågående

Blåa stenar --- 48st --- 900kg
Gröna stenar --- 9st --- 15kg

då vore det fint om excel räknade ut att på den sidan finns i det här fallet då

2 Jobb --- 57st ---915 kg

likaså för blad två att det räknar ut totalt antal jobb - styck - vikt.

hoppas du förstår vad jag menar

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Aug 2008

Det går tyvärr inte att lösa ditt problem med enbart formler. Ett par rader VBA-kod hade kunnat lösa problemet, men då måste du spara din Excel som en "Macro enabled workbook".

Det enklaste sättet att lösa det hela på enligt min mening är att bara göra om allting till en tabell. Då kommer du lätt kunna filtrera på din "färdiga jobb"-kolumn för att antingen se alla dina färdiga jobb eller dina pågående (dvs sådana utan x).

För att räkna antalet pågående och färdiga jobb, kan du använda formeln

=COUNTIFS(Table1[Färdigt jobb];"x")
och
=COUNTIFS(Table1[Färdigt jobb];"")

där "Table1" då är namnet på din tabell och "Färdigt jobb" är namnet på fältet i tabellen.

För att summera antalet och vikten använder du

=SUMIFS(Table1[Antal];Table1[Färdigt jobb];"x") respektive =SUMIFS(Table1[Vikt];Table1[Färdigt jobb];"x")
och
=SUMIFS(Table1[Antal];Table1[Färdigt jobb];"") respektive =SUMIFS(Table1[Vikt];Table1[Färdigt jobb];"")

EDIT:
Dessa summor utgår från att du inte skriver ut t.ex. "st" och "kg" i dina kolumner som du räknar ut, utan det måste bara vara siffror. Om du vill få in "st" och "kg" kan du byta nummerformat till "Custom" och där skriva in dessa suffix.

Trädvy Permalänk
Medlem
Plats
Helsingfors
Registrerad
Jun 2004

Här har du ett exempel.

http://ajpanton.se/lista.xlsx

Kanske kan göras med effektivt? Är även begränsat till 99st, går för långsamt om man kör obegränsat. Du kan själv öka gränsen om det behövs (ändra alla 100 och 99 till 1000 och 999 t.ex... vet, kunde gjort det mer användarvänligt om jag spenderade mer tid). Kom bara ihåg att vektorformler måste sparas med ctrl+shift+enter istället för bara enter (kolumn I, där du ser att formeln sitter mellan {}).

Trädvy Permalänk
Medlem
Plats
kw
Registrerad
Mar 2009
Skrivet av ajp_anton:

Här har du ett exempel.

http://ajpanton.se/lista.xlsx

Kanske kan göras med effektivt? Är även begränsat till 99st, går för långsamt om man kör obegränsat. Du kan själv öka gränsen om det behövs (ändra alla 100 och 99 till 1000 och 999 t.ex... vet, kunde gjort det mer användarvänligt om jag spenderade mer tid). Kom bara ihåg att vektorformler måste sparas med ctrl+shift+enter istället för bara enter (kolumn I, där du ser att formeln sitter mellan {}).

Uppskattar verkligen hjälpen! Tack! Det som hade varit ännu bättre vore om de som blir färdiga, markerade med x hamnade på nästa blad så att de försvann. Ska forska vidare och se om jag kommer på något. På sikt kommer det bli flera blad med pågående jobb och då vore det bra om säg alla "pågående-jobb", på låt oss säga 3 stycken blad, hamnade i ett och samma blad för "färdiga jobb".

Trädvy Permalänk
Medlem
Plats
Sverige
Registrerad
Jun 2010
Skrivet av rytrix:

Hej

Börjar med att tala om att jag absolut inte är någon van användare utav excel men jag hoppas kunna få ordning på detta med hjälp utav någon som kan.

på blad 1 har jag "pågående jobb". Det ser ut så här

Kolumn A
Namn

Kolumn B
Styck

Kolumn C
Vikt

Till mitt problem: Jag skulle vilja

1. Med hjälp utav kommando/rullista eller dyl. kunna välja rad/-er som flyttas från blad 1 till nästa blad som då får bli "färdiga jobb". Typ att om jag markerar E kolumnen med x så vet excel att den ska flytta hela den raden till nästa blad.
2. Det vore även önskvärt att, på båda bladen, om man kunde få fram totalt antal Namn + total vikt på det som står.

är detta något som går "lätt" att ordna eller är det jätte avancerat

Lekte runt lite och tror jag lyckades ghetto-modda ihop ett hyfsat användarvänligt ark. Grundprincipen är att det är kod på "Färdiga jobb" som letar efter "X" i kolumn D under pågående jobb. Om X inte finns, lämnar koden blankt, vilket ger en massa tomma rader. Därför måste filter användas så att det blir överskådligt.

i pågående jobb filtrerar jag bort X så de avslutade jobben tas bort, och i färdiga jobb filtrerar jag efter tomma rader. När du har filter på måste man uppdatera bladen (CTRL+ALT+L) för att en ändring ska verkställas enligt filterinställningen.

Länk: https://www.dropbox.com/s/zt1tkmuyouqnnsz/Exempel.xlsx?dl=0

Koden är aktuell för intervallet 7->100, så du får dra ner mer om du behöver. Glöm inte att ändra summorna längst upp isf.

Trädvy Permalänk
Medlem
Plats
kw
Registrerad
Mar 2009

Kom att tänka på en annan sak, om man bortser från alla uträkningar och "bara" vill förflytta rader från blad 1 till blad två. Skulle det inte gå att skriva ett macro som "när det finns ett X i E-kolumnen" flyttar dessa till blad två...?

Trädvy Permalänk
Medlem
Plats
Knivsta
Registrerad
Nov 2002

Jag hade nog flyttat det hela till en webbapplikation och gjort ett lätt gränssnitt för detta där man matar in allt och sen när något är klart så klickar man bara på en knapp för att arkivera. En filterfunktion för att se ej klara och klara jobb.

Webb -och apputvecklare på Greater Than AB
Min hemsida | Frilansutvecklaren | LinkedIn profil.
Hemdator: Thinkpad T410S | Jobbdator: Microsoft Surface Pro 4 | Mobil: Samsung S7 Edge.

Trädvy Permalänk
Medlem
Plats
Hemma
Registrerad
Dec 2006

Så här?

https://minfil.org/v2T4B7b9bc/Exempel.xlsm
Sätt ett X (stort X) i kolumn D och tryck enter.

"X"et kanske inte är så viktigt att det följer med till sida två?
Byt då ut koden till följande istället:

Citat:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Selection, Range("D:D")) Is Nothing Then
Prev = Left(Target.Address, 3) & Range(Target.Address).Row - 1

If Range(Prev).Value = "X" Then
LR = Sheets(2).Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets(1).Rows(Range(Target.Address).Row - 1).Cut
Sheets(2).Rows(LR).Insert Shift:=xlDown
Sheets(2).Range("D" & LR).Value = ""
End If
End If
End Sub