Hei
Ongelmani on seuraava: Yrityksessä tehdään usealle asiakkaalle tarjouksia samasta projektista. Käytännössä siis Asiakas A:n tarjous Projekti X:stä kopioidaan Asiakas B:lle jne. Lopputuloksena on esim. 6 tarjousta samasta projektista mutta vain yhdestä voi valitettavasti tulla tilaus.
Yritän saada selville yrityksen HITRATE-arvoa ja tämähän ei onnistu jos kaikki kuudesta samaa projektia koskevasta tarjouksesta kaikki ovat tarjouskannassa. Yksi tarjous on siellä statuksella "WON" ja 5 statuksella "INPROG".
Tietueet eivät ole identtisiä, mutta "Project" kentässä on kaikilla identtinen tieto.
Onko mahdollista Excelin normaaleilla työkaluilla saada kanta putsattua siten, että saman projektin tarjouksista poistetaan muut paitsi se jolla status-kentässä on arvo "WON" tai toisaalta silloin kun mitään tarjousta ei ole hyväksytty (eli kaikki statuksella "INPROG") niin poistetaan muut paitsi se jonka loppusumma kentän arvo on pienin?
Onnistuuko siis Excelin normaaleilla työkaluilla vai pitääkö ryhtyä harjoittelemaan VB:tä? :)
Duplikaatit ja tietueiden poistaminen
3
246
Vastaukset
- PulassaOleva
Ongelma on siis sellainen, että pitää verrata kolmen eri sarakkeen (Project, Status ja Tarjoussumma) tietoja ja pystyä poistamaan turhat rivit.
1. Jos Project sarakkeesta ei löydy duplikaattia rivi saa jäädä koskemattomaksi.
2. Jos Project sarakkeesta löytyy yksi tai useampi duplikaatti on verrattava Status saraketta ja jos Statuksena on WON niin kyseinen rivi jää, mutta muut rivit pitäisi saada poistettua.
3. Jos Project sarakkeesta löytyy yksi tai useampi duplikaatti ja kaikilla niillä on Status sarakkeessa arvona INPROG niin täytyy verrata Tarjoussumma sarakkeen arvoja kyseisillä riveillä ja jättää jäljelle se rivi jossa arvo on pienin ja poistaa muut rivit. - Tämmöinen
Oletus: tiedot ovat Sheet1:n sarakkeissa A-C ja ensimmäinen rivi on otsikko.
Sub PoistaDuplikaatit()
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SortFields.Clear
.SortFields.Add Key:=Range("A:A"), Order:=xlAscending
.SortFields.Add Key:=Range("B:B"), Order:=xlDescending
.SortFields.Add Key:=Range("C:C"), Order:=xlDescending
.SetRange Range("A:C")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.Apply
End With
r = 1
Do
If Cells(r, 1) <> Cells(r 1, 1) Then
r = r 1
Else
Rows(r 1).Delete
End If
Loop Until Cells(r, 1) = ""
End Sub - PulassaOllut
Kiitos Paljon!
Homma toimi kun muutin oikeat sarakkeet ja hinta-sarakkeelle xlAscending xlDescending:n sijaan.
Olikin aika yksinkertainen juttu loppujen lopuksi (jos sen osaa)
Vielä kerran paljon kiitoksia.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 1472609
En kai koskaan saa sinua
Koska et usko että riitäisit minulle. Olet aina pitänyt itseäsi liian risana ja heikkona. Katkot korkeutesi, ja poraat k1541659Terveystalon lääkärit ylilaskuttaneet
Tämän pörriäiset osaavat, laskuttamisen. Terveystalo myöntää asian. https://www.hs.fi/suomi/art-2000011134269.html "K1341634Saran ökytyyli käänsi katseita.
On nyt kyllä Sara kasvoistaan, kuvan perusteella todellakin pyöristynyt ainakin kuvan perusteella.1491368- 661338
The Summit Suomi: Maxie avaa hyytävästä tilanteesta kuvauksissa: "Veri roiskui ja tajusi, että..."
Oletko seurannut The Summit Suomea? Tykkäätkö vai et tai mitä mieltä ylipäätään olet sarjasta? Moni katsoja on kaikonnut131180Työttömille lusmuille luvassa lisää keppiä
Hallitus aikoo kiristää velvoitteiden laiminlyönnistä seuraavia työttömyysturvan karensseja ensi vuodesta alkaen. Hall2841174- 156976
Miksi ihmeessä?
Erika Vikman diskattiin, ei osallistu Euroviisuihin – tilalle Gettomasa ja paluun tekevä Cheek22934Tiedän kaiken sinusta ja kaikesta
Tiedän miten kärsit. Tiedän millanen oikeesti oot. Tiedän miksi valehtelit, tiedän miksi satutit mua. Tiedän mitä tapaht58889