Stupid work procedures –> beautiful solutions: SUMIF By colors

Am văzut multe la viața mea, dar cu cât cotinuii să găsesc alte și alte lucruri faine, ajung să dau uneori peste chestii aberante, proceduri de lucru fără nici o regulă sau după reguli rudimentare sau care aparent sunt cele mai simple pentru îndeplinirea activităților zilnice.

Aceste cazuri stupide sunt rezultanta directă a gândirii manageriale lipsite de orizontul rezultatului pe care-l poate oferi un sistem informatic.

Revenind în meandrele concretului, mi s-a întâmplat ca o fostă studentă să-mi trimită un e-mail cu o provocare de Excel. Hm… habar nu aveam cine este, dar dacă e Excel zic să arunc totuși un ochi.

Emailul era cam asa: Lucrez la o firma si am primit un tabel cu peste 1000 de randuri si sefii vor sa adun pentru coloana A, toate sumele scrise cu verde, rosu, albastru. La fel pentru coloanele B, C, D.

Iată și Excelul:

image

Prima idee: Sumif()

După culori? Nu avea cum să meargă, pentru că nu ai cum să pui conditia sa fie o culoare.

SumIf() in Macro? Nici acolo nu ai cum sa pui conditia formata dintr-o culoare pentru ca in macro culoarea din Excel are o valoare care nu poate fi utilizata in insumarea conditionala.

Apoi solutia a venit, greeeeu aproape de la sine: O functie:

Function SumCuloare(Culoare As Range, Casute As Range)

    'Definirea variabilelor
Dim rrRange As Range
Dim sumColor As Long
Dim rrCasute As Range

'Definirea constantelor
sumColor = 0
Set rrCasute = Casute
vCuloare = Culoare.Font.Color

' Suma pe culori
For Each rrRange In rrCasute
    If rrRange.Font.Color = vCuloare Then
        sumColor = sumColor + rrRange.Cells.Value
    End If
Next rrRange

' Returnare rezultat
SumCuloare = sumColor

End Function

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, „Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

A?! Nice?

Iata rezultatul!

image 

Nu stiu cum ar fi fost mai simplu să se lucreze cu Excelul ăsta în așa fel încât să fie folosit un alt criteriu decât culoarea… dar bine că putem crea funcții total dinamice.

Mult mai important este, că înainte de a critica un sistem de lucru sau altul trebuie să ne amintim că tehnica este în slujba business-ului nu invers.

Spor la Work!

Blog la WordPress.com.

SUS ↑