Tälläinen ongelma, eli sarakkeesta B löytyy kolmea eri arvoa: A, B ja C. Sarake D on joko tyhjä tai x. Millä komennolla voin laskea kuinka monelta riviltä löytyy B-sarakkeesta arvo C ja D-sarakkeesta x?
Rivien määrää ei ole ennalta määritelty vaan voi vaihdella.
Rivien määrää ei ole ennalta määritelty vaan voi vaihdella.
Vastaukset 5
Vanhimmat
=LASKE.JOS(B:B,"C")
=LASKE.JOS(D:D,"x")
https://support.office.com/fi-fi/article/COUNTIF-function-e0de10c6-f885-4e71-abb4-1f464816df34
https://support.office.com/en-us/article/COUNTIF-function-e0de10c6-f885-4e71-abb4-1f464816df34
=LASKE.JOS.JOUKKO(B:B;"C";D:D;"X")
Tätä juuri tarkoitin. Onnistuuko jollain komennolla vai onko helpompaa lähteä toteuttamaan VBA:lla seuraavaa:
Välilehdeltä "data" etsitään kaikki rivit joissa samalla rivillä B-sarakkeessa esiintyy "C" ja D-sarakkeella "x". Kun kummatkin sarakkeet sisältävät nämä tiedot kopioidaan E-sarakkeesta oleva teksti välilehden "yhteenveto" soluun B2 ja seuraava kummatkin ehdot toteutava kopioidaan soluun B3, jne.
Data-välilehdellä rivimäärää ei ole edelleenkään määritelty ja C:tä ja x:ää voi esiintyä useamman kerran.
Function EtsiJaSiirrä2(Hakuehto As Variant) As Range
Dim solu As Range
Dim EkaOsoite As String
Worksheets("Data").Activate
With Range("D:D")
Set solu = .Find( _
What:=Hakuehto, _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)
If Not solu Is Nothing Then
EkaOsoite = solu.Address
If UCase(solu.Offset(0, -1)) = "C" Then
Set EtsiJaSiirrä2 = solu.Offset(0, -2)
Set EtsiJaSiirrä2 = Union(EtsiJaSiirrä2, solu.Offset(0, 1))
End If
Do
Set solu = .FindNext(solu)
If UCase(solu.Offset(0, -2)) = "C" Then
If EtsiJaSiirrä2 Is Nothing Then
Set EtsiJaSiirrä2 = solu.Offset(0, 1)
Else
Set EtsiJaSiirrä2 = Union(EtsiJaSiirrä2, solu.Offset(0, 1))
End If
End If
Loop While Not solu Is Nothing And solu.Address <> EkaOsoite
End If
End With
End Function
Sub Testi2()
Dim Löydetty As Range
Dim solu As Range
On Error GoTo virhe
Set Löydetty = EtsiJaSiirrä2("X")
Worksheets("Yhteenveto").Range("B2:B10000") = ""
Löydetty.Copy Range("Yhteenveto!B65536").End(xlUp).Offset(1, 0)
Exit Sub
virhe:
MsgBox "Hakuehdoilla ei löytynyt tietoja!", vbInformation
End Sub
Keep EXCELing
@Kunde
TLaskeA
Lasket määriä kahdella ehdolla. Määrät on laske ja monta ehtoa on T-funktiot
Tarvitset vain ehtoaluuen:
sarakkeen otsikkosolu, otsikkosolu
C x
Eli yksi ehto on otsikko ja tieto, nyt käytät kahta ehtoa.