Avatar billede niro Nybegynder
29. januar 2007 - 12:38 Der er 35 kommentarer

Sum af forskellig tekstfarve

Kan man lave en formel, hvor man kun vil sumere tal skrevet med rød f.eks. (Jeg har nogle felter med sorte tal og andre med røde tal. Kan man sumere dem på baggrund af deres skriftfarve ?)  Vil helst undgå VBA
Avatar billede excelent Ekspert
29. januar 2007 - 15:35 #1
tror ikke du kommer uden om VBA

Function ColorSum(Seller, Farve)
Application.Volatile
For Each c In Seller
If c.Font.ColorIndex = Farve Then
cSum = cSum + c.Value
End If
Next
ColorSum = cSum
End Function
29. januar 2007 - 15:37 #2
Ikke med mindre den røde farve kommer fra en betinget formatering. Så kan du anvende samme betingelse til summereringen, som du anvender til formatering.

Har du manuelt valgt rød farve i celler, kan du ikke.
Avatar billede niro Nybegynder
29. januar 2007 - 16:21 #3
Det er lidt en skam. Er nemlig ikke de samme celler, som bruges hver gang til indtastning af rød skrift !!
Avatar billede excelent Ekspert
29. januar 2007 - 16:30 #4
kan du uddybe ?
Avatar billede niro Nybegynder
30. januar 2007 - 09:57 #5
Tror faktisk jeg kan bruge en betinget formatering. Det er så bare lige hvordan jeg får det skrevet rigtigt.  Når man indtaster et tal i et felt skal det være rødt, hvis man starter med at skrive o (for overtid) foran tallet (kan være et kommatal fx. o5,25). Ellers skal det bare være sort. Når man skriver o foran skal det ikke vises i feltet, men tallet skal bare blive rødt. Derefter må man kunne lave en betingelse for at summere alle tal som starter med o.
30. januar 2007 - 10:26 #6
Du kan ikke indtaste et bogstav i et tal-felt. Det vil sige at hvis din indtastning starter med et "o", vil det blive opfattet, som et tekstfelt, der ikke uden videre kan laves beregninger på.

Den optimale løsning vil være at indtaste o-et i en celle, og timetallet i en anden celle. Det vil være langt den letteste løsning for dig.

Et andet problem i det du nævner er at du indtaster timetal, som et decimaltal. Herved afskærer du dig fra at benytte de indbyggede funktioner til beregninger på timer/minutter.

Der er ingen problemer i at benytte betinget formatering i forhold til det du nævner.
Avatar billede niro Nybegynder
30. januar 2007 - 10:34 #7
Kan lave det sådan at man skriver 0 istedet for o foran tallet ?  (vel helst undgå at skulle bruge et ekstra felt)

Lyder fornuftigt at bruge timer/minutter beregning. Man skal bare kun kunne skrive/regne med et interval på 15 min.  Har ikke rigtig arbejdet med Timer/minutter beregning før.
30. januar 2007 - 11:03 #8
Foranstillede nuller vises ikke i et talfelt.

Du kan ikke benytte foranstillet nul til noget i denne sammenhæng.
Avatar billede niro Nybegynder
30. januar 2007 - 11:31 #9
Hvordan gør jeg så, når jeg har nogle medarbejdere der skal indtaste deres arbejdstid. De skal så kunne angive om det er alm. timer eller overtidstimer !!  Da ikke alle er lige smarte til at håndtere en pc skal det gøres meget simpel (med at man taster et tal/bogstav inden selve timeantallet). Kan en betinget formatering ikke skelne mellem de indtastede værdier, og kun nøjes med at srive timeantalet i feltet bare med rød skrift.
30. januar 2007 - 11:36 #10
Du KAN ikke have 2 informationer i den samme celle, hvis det er noget du skal bruge til beregninger og vil anvende betinget formatering på.

Hvis du endelig VIL benytte fremgangsmåden med at indtaste et "o" foran et timetal - i den samme celle (hvad jeg endnu en gang vil fraråde på det kraftigste), vil jeg foreslå at du laver dette som en indtastningscelle, og herfra overfører klokkeslettet til en anden celle, som efterfølgende benyttes til beregningerne.
30. januar 2007 - 11:39 #11
Det er heller ikke særligt logisk for urutinerede brugere at de i samme celle skal indtaste et bogstav og et klokkeslet i samme celle. Det er da langt lettere at forklare den at de i en celle skal indtaste om det er alm.timer/overtimer og i en anden antallet af timer.
Avatar billede niro Nybegynder
30. januar 2007 - 11:42 #12
Oki...    jeg må se om jeg kan finde på noget !!  Syntes bare dette burde være en simpel opgave  :-(
Avatar billede niro Nybegynder
30. januar 2007 - 11:44 #13
De skal ikke indtaste et klokkeslet, men bare et tal, som angiver antal timer brugt på et stykke arbejde !!
Avatar billede excelent Ekspert
30. januar 2007 - 15:42 #14
1.Forslag : indsæt i arkets kodemodul
indtast o efterfulgt af tal

Private Sub Worksheet_Change(ByVal Target As Range)
If Left(Target, 1) = "o" Then
Target = Mid(Target, 2, Len(Target))
Target.Font.ColorIndex = 3
End If
End Sub

2.Forslag : indsæt i arkets kodemodul
dobbeltklik på den selle hvor tal skal være rød

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target = InputBox("Indtast Overtid : ")
Target.Font.ColorIndex = 3
End Sub
Avatar billede niro Nybegynder
31. januar 2007 - 07:56 #15
Takker for dine forslag ;-)  Forslag 1 virker perfekt, men hvordan får jeg så de røde tal sumeret for sig selv ??
Avatar billede excelent Ekspert
31. januar 2007 - 10:32 #16
prøv evt Functionen i kommentar: 29/01-2007 15:35:21
Indsæt den i et alm. modul (ALT+F11) Insert > Module

i arket skriver du : fx.  =ColorSum(A1:C30;3)
summer i område A1:C30 røde celler
Avatar billede niro Nybegynder
31. januar 2007 - 11:46 #17
Virker næsten som jeg havde drømt om, men kan man ikke få den til at opdatere feltet hele tiden, når man laver nye indtastninger ?
Avatar billede niro Nybegynder
31. januar 2007 - 11:47 #18
Det virker perfeket !!!  Den opdatere summen hele tiden !!  SUPER ;-)
Avatar billede niro Nybegynder
31. januar 2007 - 11:57 #19
Kan jeg lave en formel som hedder noget lignende =COLORSUMPRODUKT(J9:J128;3) ??  Den melder fejl, hvis jeg skriver det som her :-(
Avatar billede excelent Ekspert
31. januar 2007 - 12:42 #20
ikke med den kode, så skal koden rettes til
men kan du ikke bare skrive =ColorSum(J9:J128;3)
Avatar billede niro Nybegynder
31. januar 2007 - 12:55 #21
Jo men tallene i kollonen skal sorteres efter sagsnummerene. (alle tal med rødt som referere til hver sagsnummer skal summeres)
Avatar billede excelent Ekspert
31. januar 2007 - 13:32 #22
nå ok kikker på det efter arb.tid
Avatar billede niro Nybegynder
31. januar 2007 - 13:36 #23
Lyder super godt ;-)
Avatar billede excelent Ekspert
31. januar 2007 - 15:13 #24
Hvor har du sagsnumrene - er de i kolonne til højre el venstre eller.. ?
Avatar billede niro Nybegynder
31. januar 2007 - 15:22 #25
Jeg har sagsnumrene i kolonne F9 til F128
Avatar billede excelent Ekspert
31. januar 2007 - 18:44 #26
indsæt koden - i arket taster du :

=ColorProdukt(J9:J128;3;1;0)
-sumerer værdier i J9:J128 hvis er rød og sagsnr. = 1
=ColorProdukt(J9:J128;3;1;-1)
-sumerer værdier i J9:J128 hvis er rød og sagsnr. i I9:I128 = 1
=ColorProdukt(J9:J128;3;1;2)
-sumerer værdier i J9:J128 hvis er rød og sagsnr. i L9:L128 = 1


Function ColorProdukt(Seller, Farve, Nummer, Kolonne)
Dim c, cSum
Application.Volatile
For Each c In Seller
If c.Offset(0, Kolonne) = Nummer And c.Font.ColorIndex = Farve Then
cSum = cSum + c.Value
End If
Next
ColorProdukt = cSum
End Function
Avatar billede niro Nybegynder
31. januar 2007 - 21:12 #27
Hvad gør jeg så, hvis ikke sagsnummeret er 1, men et vilkårligt tal i et felt, som skal stemme overens med et tal fra kolonne F9:F128
Avatar billede excelent Ekspert
31. januar 2007 - 22:36 #28
så skriver du det tal i stedet for 1 i formlen
Avatar billede niro Nybegynder
31. januar 2007 - 22:41 #29
Hvad betyder det sidste tal i formlen så ?  (0 / -1 / 2)
Avatar billede excelent Ekspert
31. januar 2007 - 22:54 #30
det er hvis dine sagsnumre ikke er i samme kolonne som de værdier du vil sumere
0 = samme kolonne/range -1 hvis de er i kolonnen til venstre 2= 2 kolonner til højre
Avatar billede niro Nybegynder
31. januar 2007 - 22:59 #31
Super fedt !!!    Du er sgu en flink fyr med hurtig hjælp !!    Tester det hele imorgen, når hjernecellerne snurrer lidt hurtigere !!
Avatar billede excelent Ekspert
02. februar 2007 - 15:58 #32
Hvis skidtet ikke virker må du jo sige til, så retter vi den til
Avatar billede excelent Ekspert
23. februar 2007 - 21:28 #33
*
Avatar billede excelent Ekspert
12. september 2007 - 19:36 #34
*
Avatar billede excelent Ekspert
19. november 2007 - 18:31 #35
for at lukke skal du markere box med navn og klikke accepter
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester