Seuraavanlainen kaava pitäisi saada aikaiseksi:
Ensimmäisellä välilehdellä on sarakkeita
Esim.
Tili Kp Summat
1234 12 123 €
1234 20 140 €
1353 13 165 €
1234 12 135 €
1353 13 175 €
1234 20 155 €
Näistä pitäisi saada poimittua toiselle välilehdelle tiedot aakkostaen, yhdistettynä ja yhteenlaskettuna.
Tili Kp Summat
1234 12 258 €
1234 20 295 €
1353 13 340 €
Menisikö tämä jollakin phaku tai vhaku funktiolla?
Tämä olisi tärkeä saada toimimaan.
Ensimmäisellä välilehdellä on sarakkeita
Esim.
Tili Kp Summat
1234 12 123 €
1234 20 140 €
1353 13 165 €
1234 12 135 €
1353 13 175 €
1234 20 155 €
Näistä pitäisi saada poimittua toiselle välilehdelle tiedot aakkostaen, yhdistettynä ja yhteenlaskettuna.
Tili Kp Summat
1234 12 258 €
1234 20 295 €
1353 13 340 €
Menisikö tämä jollakin phaku tai vhaku funktiolla?
Tämä olisi tärkeä saada toimimaan.
Vastaukset 8
Vanhimmat
helpoiten taitais onnistu Pivot-taulukolla
Sum of Summat
Tili Kp Total
1234 12 258
20 295
1353 13 340
Grand Total 893
tai sitten tämäkin voisi toimia,tiedot sheetillä1 a2:c7 alueella,
sheetillä2 a2-a4 tilit,b2-b4 kp ja c2-c4 tämä kaava:
=SUMPRODUCT((Sheet1!$A$2:$A$7=A2)*(Sheet1!$B$2:$B$7=B2);Sheet1!$C$2:$C$7)
haluaisin, että tuo sama asettelu pysyy myös toisella sheetillä, ja että tilit näytetään akkostaen, ja ryhmiteltynä. En ainakaan pivotilla tätä saanut. Olisiko jotenkin mahdollista?
Eli, kun ekalla sheetillä on esim.
Tili Kp Summat
1234 12 123 €
1234 20 140 €
1353 13 165 €
1234 12 135 €
1353 13 175 €
1234 20 155 €
ja tokalla
----------------------
Tili Kp Summat
1234 12 258 €
1234 20 295 €
1353 13 340 €
SUMPRODUCT meni vähän sekavaksi. Tilien määrä kun vaihtelee, ja niitä syötetään tiettyyn matriisiin aina uudestaan. Noita tilejä saattaa olla vaikka 20 erilaista.
Taitaa mennä vaikeaksi...
ihan perusjuttuhan toi on ;-). Muuta nimet Taul1 ja Taul2 itsellesi sopivaksi
Sub Tilit()
Dim Vika As Integer
Dim i As Integer
On Error GoTo virhe
Application.ScreenUpdating = False
Worksheets("Taul2").Cells = ""
Range("Taul1!A1").CurrentRegion.Copy Destination:=Range("Taul2!A1")
Worksheets("Taul2").Activate
Range("A1").CurrentRegion.Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range("B1") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
:=xlSortNormal
Vika = Range("A65536").End(xlUp).Row
For i = Vika To 2 Step -1
If Range("A" & i) = Range("A" & i - 1) Then
If Range("A" & i).Offset(0, 1) = Range("A" & i - 1).Offset(0, 1) Then
Range("A" & i).Offset(-1, 2) = Range("A" & i).Offset(-1, 2) Range("A" & i).Offset(0, 2)
Range("A" & i).EntireRow.Delete
End If
End If
Next
virhe:
Application.ScreenUpdating = False
End Sub
No tuossahan jo tulikin sinulle sopiva ratkaisu Kundelta. Ei pivotilla eikä kaavalla pääse tuohon samaan...
Ei se kaikille näytä olevan vaikeaa, huoh...
hienosta koodista! Joku mulla silti tossa tökkää.
Worksheets("Taul2").Cells = ""
Pitääkö tohon lainausmerkkejen sisään määritellä mitään? Tuohan tarkoittaa tyhjää. Liitin tuon koodin painikkeen click-tapahtumaan, mutta mitään ei tapahdu vaikka painaa.
Onkos sulla Taul2 nimistä taulukkoa?
Välilehti yksi on Taul1 ja välilehti kaks on Taul2.
Mistäköhän voisi johtua. Hitsi, tää on niin lähellä... :)
hipsaa toi rivi
'Worksheets("Taul2").Cells = ""
ja kokeile sitten toimiiko. Kyllä koodin pitäisi toimia ihan OK.