|
|
Prøv en matrice-formel, se evt. hjælp F1
| |
| Kommentar Fra : kimsdk |
Dato : 25-02-05 12:01 |
|
Har "cyklet" F1 igennem på kryds og tværs!
Formlen "Betinget sum" er tæt på, men dur heller ikke.
| |
| Kommentar Fra : sion |
Dato : 25-02-05 15:59 |
|
Den er nem...
Jeg antager her, at du skriver det leverandørnummer, du vil søge efter, i felt D1, og tilsvarende varenummeret i D2.
I en tredje kolonne (evt. C) skriver du følgende: =HVIS(A2=D$1;HVIS(B2=D$2;1;0);0)
Herefter kan du summerere tallene i kolonne C for at få antallet af gange, hvor en bestemt leverandør har leveret en bestemt vare.
Simon
| |
| Kommentar Fra : Eyvind |
Dato : 25-02-05 16:15 |
|
Hvis du bruger og betingelsen, skal og stå før dine betingelser
Du kan se det i logisk.
I denne logiske "og" kan du lægge 2 stk "hvis"
og så tæl eller tælv omkring det hele
Der må være 11 indlejrede betingelser i en sætning.
| |
|
Sion og Eyvinds svar er gode, men:
Hvis du vil have en vba-løsning, der virker,
uanset hvor mange rækker/kolonner/betingelser du anvender,
så skriv lige !
Mvh W.
| |
| Kommentar Fra : kimsdk |
Dato : 28-02-05 11:11 |
|
Sion´s er jeg helt klar over, men det drejer sig om en formel der kan tælle alle records igennem, og tælle hvor mange leverandør X har leveret af vare Y (i én formel).
I VB hedder formlen: count.iif(A1..A200;X) and (B1..B200;Y)
hvor det er det lille "and" det ser om leverandør er X OG vare er Y. Den skal IKKE tælle dem med hvor leverandør er X og vare er Z!
Sååå, W, hvis du har et bud.
| |
|
Hermed en lille vba:
Jeg antager, at alle leverandørnumre står i kolonne A, og alle varenumre i kolonne B.
Afprøv nedenstående, og skriv, hvis du får problemer:
Public Sub ToBetingelser_() 'Denne sub tillader max. 65.000 rækker !
Dim LEV As Range, VAR As Range, clL As Range, clV As Range
Dim Lnr As Integer, Vnr As Integer, HIT As Integer
HIT = 0
Lnr = InputBox("Indtast leverandørnr.")
Vnr = InputBox("Indtast varenr.")
Set LEV = Range("a:a")
Set VAR = Range("b:b")
For Each clL In LEV
With clL
If .Offset(0, 0) = Lnr And .Offset(0, 1) = Vnr Then HIT = HIT + 1
End With
Next clL
MsgBox "Leverandørnr. " & Lnr & vbCrLf & " og" & vbCrLf & "Varenr. " & Vnr & vbCrLf & vbCrLf & HIT & " hits !"
End Sub
| |
| Kommentar Fra : kimsdk |
Dato : 28-02-05 14:43 |
|
Fik alligevel afprøvet den.
Den virker perfekt. Men kan man få den til at "out-putte" i et felt i Excell (eks. C1)?
| |
|
Ja, her er den samme vba, men lidt redigeret:
Public Sub ToBetingelser_2() 'Denne sub tillader max. 65.000 rækker !
Dim LEV As Range, VAR As Range, clL As Range, clV As Range
Dim Lnr As Integer, Vnr As Integer, HIT As Integer
HIT = 0
Lnr = InputBox("Indtast leverandørnr.")
Vnr = InputBox("Indtast varenr.")
Set LEV = Range("a:a")
Set VAR = Range("b:b")
For Each clL In LEV
With clL
If .Offset(0, 0) = Lnr And .Offset(0, 1) = Vnr Then HIT = HIT + 1
End With
Next clL
with Range("c1")
.select
.value = HIT
end with
End Sub
Mvh W.
| |
| Kommentar Fra : Rosco40 |
Dato : 28-09-05 19:09 |
|
Det kan gøres meget enkelt med denne formel som placeres i C1.
1 for leverandør og 25 for varenummer , kan evt erstattes med cellereferencer, f.eks D1 og E1,
Så kan det du vil vide let ændres.
[Code]
=SUMPRODUKT((A3:A65001=1)*(B3:B65001=25))
=SUMPRODUKT((A3:A65001=D1)*(B3:B65001=E1))
| |
| Du har følgende muligheder | |
|
Dette spørgsmål er blevet annulleret, det er derfor ikke muligt for at tilføje flere kommentarer.
| |
|
|