-
IT café
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
amdk7
aktív tag
-
Mutt
aktív tag
Szia,
Excel 2010-től van Power Query, ahol 5+1 lépés az egész:
0. Alakítsd át a tartomány táblázattá (nem kötelező ha másik fájlból akarsz dolgozni)
1. Olvasd be az adatsort
2. Add Column -> Index column3. Kijelölöd az újonnan létrejött oszlopot, majd Transform -> Unpivot -> Unpivot by other columns
4. Majd sorba rendezed előbb a fejléc alapján, majd az index alapján.
5. Törlöd a felesleges 2 oszlopot.
6. Visszatöltöd az eredményt Excelbe. Home -> Close and load -> .. to..üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
pentium4
senior tag
Sziasztok,
Az alábbi feladatot hogy tudnám megoldani:
A 2. sorban egy másik tábláról kerülnek beolvasásra az adatok, ha függvénnyel, ha a másik lapon pl PÁRIZS van akkor 'p' betüt ir ezen a lapon, azt kéne megoldani, ha 2db nál több 'p' van akkor a 'p' helyett 'n' betű legyen az eredmény, és a p számolását a sor elejéről kell kezdeni, vagyis ebben a példában az első 2 marad 'p' nek, és a többinek 'n'-nek kéne lennie.
KösziP4
-
lappy
őstag
válasz pentium4 #44104 üzenetére
Mivel nem ismert a ha függvényed, de a p gondolom bárhol lehet. Ezért az első kettő cellaval nem kell foglalkozni hiszen a sor elejéről nézzük.
A 3.tól pedig kell a képlet meg kell számolni a p-k számát a teljes tartományban. Egy ha függvénybe beágyazod, és ha nagyobb mint kettő és a ha függvényed ami van annak az értéke is p vel egyenlő akkor n. Különben a saját ha függvényed értéke.
A képlet valahogy így nézne ki
Ha(és(saját ha() ="p" ; darabteli(A2:B2:"p")>2);"n";sajat ha függvényed)[ Szerkesztve ]
Bámulatos hol tart már a tudomány!
-
pentium4
senior tag
Nem teljesen, mivel a hét kezdődhet úgy is hogy szerdáig d10 és utána pl az összes p betű, akkor ugye csüt péntek p viszont a hétvégét már n-re kell tennie.
Az én ha függvényem így néz ki: =IF('Munkalap1'!I8="PÁRIZS";"p";0)
mindenképp az egész tartományt kell vizsgálni, a hét elejéről.P4
-
lappy
őstag
válasz pentium4 #44106 üzenetére
Akkor valamit rosszul értelmeztel mert a 7 bol ha az első 2 már p akkor később nem lehet p, így elegendő a képletnek a 3. naptól vizsgálni hogy a 7 napból van e 2 olyan ami p tartalmaz.
Na majd ha lesz időm akkor megirom a függvényt és felrakomBámulatos hol tart már a tudomány!
-
lappy
őstag
válasz pentium4 #44106 üzenetére
=HA(ÉS(HA(Munka2!C1="Párizs";IGAZ;0);(DARABTELI($A$2:B$2;"p")>=2));"n";HA(Munka2!C1="Párizs";"p";0))
Itt van bár nem angol függvények használatával! és elegendő csak a 3. cellában alkalmazni a 7. celláid az első kettőbe mehet a saját függvényed
[ Szerkesztve ]
Bámulatos hol tart már a tudomány!
-
pentium4
senior tag
Beillesztettem, de nem működik: Az argumentumok száma nem megfelelő a(z) IF függvényhez. 2 és 3 közötti argumentumot várt, 1 érkezett.
valamint én értem hogy az első kettőt nézzük, de mi alapján fogja eldönteni a függvény ha hétfő és kedd pl d10, vagyis 1 p még lehet szerda és vasárnap között, pl csütörtökön, szombat és vasárnap is p, akkor a sorrendnek kellene döntenie, vagyis csüt p és szom és vas nP4
-
lappy
őstag
válasz pentium4 #44109 üzenetére
Szia!
Azt kérted ha Párizs akkor p és ebből lehet max kettő a harmadiktól pedig n
hogy jön ide a d10 ?!
"de mi alapján fogja eldönteni a függvény ha hétfő és kedd pl d10, vagyis 1 p még lehet szerda és vasárnap között," a d10=p vel ezt eddig nem mondtad vagy nem értem az összefüggést[ Szerkesztve ]
Bámulatos hol tart már a tudomány!
-
attiati
veterán
mi mászott el az excelemben?
Jegyzettömbből bemásolok gépelt szöveget XLS-be és minden egyes szót új cellába tesz.
[ Szerkesztve ]
-
v.attis
őstag
Sziasztok!
Nem biztos, hogy excel kérdés, de abból indul.
Körlevél készítés Wordben, néhány oszlop egy excel listából amelyek pénz formátumban vannak, pl. 40.000 Ft. Sajnos az összegeket képlet adja, tehát egy bővebb számítás és nekem az eredménye kell a körlevélbe.
Amikor a mezőt beteszem a Word dokumentumba és pdf-ben kinyomtatom, akkor a végeredmény nem 40.000 Ft, hanem mondjuk 40000,09456324.
Tehát ott van az összes tizedes szám és nincs ott a Ft. jelzés sem.
Mit kell tennem ahhoz, hogy úgy jelenjen meg a wordben, mint ahogy az excelben is látom? -
lappy
őstag
válasz v.attis #44112 üzenetére
https://www.extendoffice.com/documents/word/1003-word-mail-merge-date-currency-and-number-format.html
De ha rakeresel hogy mezokod beállítása körlevél akkor több infó is van
Mezőkód beállítása
{MERGEFIELD \#### Ft}
Vmi hasonló kell neked[ Szerkesztve ]
Bámulatos hol tart már a tudomány!
-
szricsi_0917
tag
Sziasztok
Segítséget szeretnék kérni!
Át akarom forgatni vba-ba a=SZORZATÖSSZEG(MAX((Szervíznyilvántartó!B2:B1000=B2)*Szervíznyilvántartó!G2:G1000))
Ha beírom egy cellába ez működik is, tehát a számítás elgondolása helyes.
VBA:auto.Range("U" & i) = Application.WorksheetFunction.SumProduct(Max((utnyilvan.Range("B2:B" & lastrow1) = auto.Range("B" & i)) * utnyilvan.Range("C2:C" & lastrow1)))
A for "i" ciklus és a lastrow működik, mert ha egy egyszerűbb függvényt írok a helyére tökéletesen végig megy.
Lehetséges, hogy vba-ba nem így kell összefűzni a SUMPRODUCT-ot és a MAX-ot?[ Szerkesztve ]
-
p5quser
tag
Sziasztok!
Ismét előtérbe került egy korábbi nyomorom, amivel kapcsolatban egy mai guglizás felcsillantotta a reményt.
A varázsszó a "Split". Az alábbi kódsorokkal egész tűrhető eredményeket kaptam. Ő azt csinálja, hogy végigmegy a G2:G180 range-en és minden ott található megnevezést feldarabol "space"-enként, majd ezek első és második darabkáját (joker karakterekkel) megkeresi a "B" oszlopban.
Ezután visszaadja a talált egyezést, ill. a mellette lévő adatot. Mint egy feltuningolt FKERES. Gyanítom nagyban javulna a találati arány, ha a 3. darabkát is be tudnám szőni a keresésbe (a "cik" akár 4-5 részes is lehet), de elakadtam.
Azt még meg tudtam oldani, hogy ha egy darabkás a keresendő, akkor adja vissza azt, de azt már nem, hogy ha csak két darabkás, akkor is. V9-cel elszáll, mihelyst megpróbálom az "spl(2)"-t is beleszőni a keresésbe.
Ha esetleg valaki látja azt amit én nem, megköszönném... :)Sub keresgelos()
With Sheets(1)
Dim cil As Range, tci As Range
Set cil = .Range("G2:G180")
For Each cik In cil.Cells
spl = Split(cik)
Set tci = .Range("B:B").Find(what:=spl(0) & "*" & spl(1), LookIn:=xlFormulas)
If spl(1) = "" Then
Set tci = .Range("B:B").Find(what:=spl(0) & "*", LookIn:=xlFormulas)
End If
On Error Resume Next
.Cells(cik.Row, 8).Value = tci
.Cells(cik.Row, 9).Value = tci.Offset(0, 1).Value
Next
End With
End Sub[ Szerkesztve ]
-
Zoty4
őstag
Sziasztok.
Dátumoknál be lehet állítani valahogy hogy minden hónapnak más színe legyen?
pl:
2020.01.05 kék
2020.02.08 zöld
pl: feltételes formázással? -
Mutt
aktív tag
válasz p5quser #44115 üzenetére
Szia,
A Split egy eredménytömböt próbál létrehozni, aminek az elemszáma a megtalált elválasztó karakterek száma alapján változik. Ha nem találja meg a karaktert, akkor 1 elemű lesz a tömb, a bemeneti értékkel az első elemben.
A tömb elemszámát az UBOUND() függvény adja meg.
Mielőtt a 3-ik elemet keresnéd meg kell nézned, hogy van-e egyáltalán?If UBound(spl) > 2 then
... 3-ik elemes keresésed
End ifHa jól értelmezem az eredeti felvetésedet, akkor ez a kód jobb eredményt fog adni mint a mostani.
Sub Kereses()
Dim rngSearch As Range 'ez a B oszlop
Dim txSearch As Range 'ez a B oszlop éppen vizsgált cellája lesz
Dim arrWhat() 'ez a G oszlop
Dim txWhat As Variant 'a splittel ide szedjük szét fenti cella tartalmát
Dim match As Long 'találatok számolása
Dim bestmatch As Long 'legtöbb találat
Dim bestWhat As Long 'legtöbb találatot adó keresés pozíciója
Dim i As Long
Dim j As Long
With ActiveSheet
'memóriában tárolt tömbe töltjük a keresendõ kifejezések listáját
'Transpose 1-es index-szel induló tömböt hoz létre
arrWhat = Application.Transpose(.Range("G2:G180"))
Set rngSearch = .Range("B1:B" & .Range("B1").End(xlDown).Row)
For Each txSearch In rngSearch
bestmatch = 0
bestWhat = 0
For i = 1 To UBound(arrWhat)
'keresendõ szavak létrehozása
txWhat = Split(arrWhat(i), " ")
If IsArray(txWhat) Then
match = 0
'Split mindig 0-ás index-szel hozza létre a tömböt
For j = 0 To UBound(txWhat)
match = match - (InStr(1, UCase(txSearch), UCase(txWhat(j))) > 0)
Next j
'ha találtunk több egyezést a korábbiaknál, akkor jegyezzük meg
If match > bestmatch Then
bestmatch = match
bestWhat = i
End If
End If
Next i
'mielõtt új cellára mennénk a C-D oszlopban írjuk ki hogy mi a legjobb egyezésünk
If bestWhat > 0 Then
txSearch.Offset(, 1) = bestmatch
txSearch.Offset(, 2) = arrWhat(bestWhat)
End If
Next txSearch
End With
End Subüdv
[ Szerkesztve ]
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Mutt
aktív tag
Szia,
Minden hónaphoz egy feltételt kell megadnod. A formázás képlete az első hónapra pedig:
=ÉS(A1>0;HÓNAP(A1)=1)
A többi hónap esetén csak a képlet végén lévő számot kell módosítanod.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Baltincs
tag
Sziasztok. Kollégám olyan hibát tapasztalt 2016-os excelben, hogy egy shared drive-ról nyitott meg egy excel fájlt, amiben ha ő valamit update-el, a hivatkozás másik oldalán nem történik meg a változtatás, de a hivatkozás útvonala a nála modósított esetnél nem a teljes útvonal, csupán az excel fájl neve és nem jövünk rá miért nem a rendes útvonalon update-eli a fájlt. Valakinek valami tapasztalat ilyen hibával?
[ Szerkesztve ]
-
szricsi_0917
tag
Sziasztok
Sub kmfrissites_auto()
Dim auto As Worksheet
Dim utnyilvan As Worksheet
Dim szerviz As Worksheet
Dim lastrow
Dim lastrow1
Dim lastrow2
Dim i As Long
Set auto = Sheets("Autó")
Set utnyilvan = Sheets("Útnyilvántartó")
Set szerviz = Sheets("Szerviznyilvántartó")
lastrow = auto.Cells(Rows.Count, 1).End(xlUp).Row
lastrow1 = utnyilvan.Cells(Rows.Count, 1).End(xlUp).Row
lastrow2 = szerviz.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lastrow
auto.Range("U" & i) = Application.WorksheetFunction.SumProduct(Application.WorksheetFunction.Max((utnyilvan.Range("B2:B" & lastrow1) = auto.Range("B" & i)) * utnyilvan.Range("C2:C" & lastrow1)))
Next iAz auto.Range..... sornál miért fut "type mismatch" hibára?
Köszönöm a segítséget![ Szerkesztve ]
-
Mutt
aktív tag
válasz szricsi_0917 #44114 üzenetére
Szia,
Ez nem fog menni, mert a VBA-s változat máshogy műkődik.
Alternatív megoldások:
1. Előbb képlettel kiszámoltatod az eredményt, majd értékként beilleszted
With Range("U2:U" & lastrow)
.FormulaR1C1 = "=SUMPRODUCT(MAX((RC[-19]:R[998]C[-19]=RC[-19])*RC[-14]:R[998]C[-14]))"
.Value = .Value
End With2. Evaluate függvénybe teszed a képletet és az eredményt kiíratod a cellába
For i = 2 To lastrow
keplet = "=SUMPRODUCT(MAX((B2:B1000=B" & i & ")*G2:G1000))"
Range("U" & i) = Evaluate(keplet)
Next i3. Ahogy nézem csak a maximumot keresed a G-oszlopban minden B-ben lévő értékhez. Ezt Kimutatással, AB.MAX vagy MAXHA függvényekkel is el lehet érni.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
szricsi_0917
tag
Szia
Köszönöm a segítséget, nem gondoltam volna, hogy a VBA nem tudja kezelni a MAX képlettel.
Sajnos én olyan verziót használok amiben nincs MAXHA függvény pedig már rég kész lenne.
AB.MAX-ot vagy kimutatást azért nem akartam, mert ez egy userformhoz tartozik és ezután még lesz pár számítás így az csak plusz lépés lett volna és nem tudom mennyire lenne lassabb mikor már több ezer sor van, a másik pedig, hogy így elegánsabb. -
szricsi_0917
tag
Szia
Sub kmfrissites_auto()
Dim auto As Worksheet
Dim utnyilvan As Worksheet
Dim szerviz As Worksheet
Dim lastrow
Dim lastrow1
Dim lastrow2
Dim i As Long
Dim a As Long
Dim vMax As Double
Dim xMax As Double
'On Error GoTo kmfrissites_auto_Error
Set auto = Sheets("Autó")
Set utnyilvan = Sheets("Útnyilvántartó")
Set szerviz = Sheets("Szerviznyilvántartó")
lastrow = auto.Cells(Rows.Count, 1).End(xlUp).Row
lastrow1 = utnyilvan.Cells(Rows.Count, 1).End(xlUp).Row
lastrow2 = szerviz.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lastrow
For a = 10 To 21
auto.Range("V" & i) = Evaluate("=SumProduct(Max((Szerviznyilvántartó!B2:B" & lastrow2 & " = Autó!B" & i & ") * (INDIRECT(""'Szerviznyilvántartó'!"" & address(2," & a & ",4) & "":"" & INDIRECT(address(" & lastrow2 & "," & a & ",4)) = ""Motorolajcsere"") * Szerviznyilvántartó!G2:G" & lastrow2 & "))")Átalakítottam az általad javasolt megoldásra viszont újabb probléma merült fel.
Több feltételt szeretnék hozzárakni. A probléma, hogy a 2. feltétel más méretű tömb mint a többi így ugye hibára fut a képlet.
For ciklussal oldottam meg, hogy a 2. feltételnél oszloponként megy újra végig és mindig az utolsó legnagyobb értéket hagyja meg így a végén megkapom majd a maximum értéket.
A probléma, hogy az indirect megoldással mindig érték hibára fut. Mi lehet a probléma?[ Szerkesztve ]
-
Mutt
aktív tag
válasz szricsi_0917 #44126 üzenetére
Szia,
A tömböknek a szorzatösszegben azonos méretúnek kell lennie, a képleted szerint is azonos magasságúak (2-es sortól a lastrow2-ig).
Próbáld ki így a képlet létrehozását:
Dim rng As Range
Dim keplet as String
For i = 2 To lastrow
For a = 10 To 21
Set rng = szerviz.Cells(2, a).Resize(lastrow2 - 1)
keplet = "=SUMPRODUCT(MAX((Szerviznyilvántartó!$B$2:$B$" & lastrow2 & "=$B" & i & ")*(Szerviznyilvántartó!" & rng.Address & "=""Motorolajcsere"")*Szerviznyilvántartó!$G$2:$G$" & lastrow2 & "))"
auto.Range("V" & i) = Evaluate(keplet)A kódrészlet alapján ami furcsa, hogy 11 oszlop 11 eredményét kiszámolod és mindig a V oszlopba kiírod, így valójában mindig csak az utolsó oszlop eredménye marad meg.
Ha gond van, akkor érdemes feldobnod egy minta fájlt vhova a pontos feladattal és itt többen is tudnak jobb kódot majd javasolni.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
zsolti_20
senior tag
Sziasztok! Segítséget syeretnék kérnni, igay most Microsoft Wordel kapcsolatban de részben excel is.
Szeretnék átvinni címeket excelből wordbe a formázás miatt, majd ezt kinyomtatni egy speciális papírra amin lehúzható matricák vannak. Úgy van az egész megoldva, hogy Wordben a mailings fül alatt, a start mail merget választva step by step mail merge wizardra kattintva lehet beállítani mindent. De egy valamit nem tudok sajnos. Jelenleg 14 cím fér rá egy A4-es lapra.
Azt syeretném megoldani, hogy ha több mint 14 cím van, akkor hozza létre a következő oldalt. Lehetséges ilyesmi? vagy 10ezer cím esetén az egészet szeparálva kell felvinnem? -
ROBOTER
addikt
Sziasztok!
Adott sok érvényesített cella. Sok ismétlődés lehetséges, ezért a felhasználónak megengedem, hogy vágólappal másoljon közöttük. Mivel a bemásolt érték tagja az érvényesítési listának, az excel elfogadja. Viszont amikor a makróból kiolvasom a .value értékét, üreset ad vissza több esetben, de nem jöttem rá még, hogy miért, mitől függ. Ha rámegyek a legördülő listára, a cella pillanatnyi tartalmának megfelelő listaelem van kijelölve a listában (ahogyan kell), ha rákattintok a listában, a cella tartalma természetesen változatlan marad, de akkor a makró is látja.
Lehet az irányított beillesztésben (csak érték) van a különbség?
[ Szerkesztve ]
-
Mutt
aktív tag
válasz zsolti_20 #44128 üzenetére
Szia,
A körlevél készítő újabb lapot fog létrehozni a többi címnek a sablon szerint. Vagyis ha 14-nél több címed van, akkor egy újabb lapon folytatja újabb 14 címmel és így tovább.
A kész eredményt nyomtatás előtt le tudod ellenőrízni, hogy legyen lehetőség javításra. Ne a nyomtatást válaszd, hanem az új dokumentum késztését. Ha az jó akkor küldheted azt nyomtatásra.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Mutt
aktív tag
válasz ROBOTER #44131 üzenetére
Szia,
Se a Value2, se a Text nem tartalmazza a cella értékét?
Irányított beillesztésnél az ellenőrzés nem fog lefutni, így előfordulhat hogy a cella "érvénytelen" adatot tartalmaz (pl. számnak tűnő szyöveg), de attól még a cella értéket kellene tudnod kiolvasni.
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
Fecdzo
senior tag
Sziasztok!
Sok munkalappal dolgozom. Olyat lehet csinálni h mondjuk kettő vagy több sorba jelenljenek meg az egyes munkalapok alul és ne kelljen folymatosan jobbra scrollozni?
fulekitrading.wordpress.com
-
Delila_1
Topikgazda
válasz Fecdzo #44135 üzenetére
Azt nem, de ha gondolod, privátban küldök egy makrót, ami beszúr a lapok elé egy újat, és arra tartalomjegyzéket készít. Ennek segítségével azonnal a keresett lapra ugorhatsz.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
-
Fecdzo
senior tag
válasz Delila_1 #44136 üzenetére
Köszi a makrót!
Időközben találtam egy olyan megoldást is, hogy a munkalapoktól balra van egy balra és egy jobbra mutató léptetőnyíl (amivel egyesével lépegethetünk a munkalapok között). Ha a két nyíl között nyomunk egy jobb klikket akkor felugrik egy ablak, ahol kiválaszthatók az egyes munkalapok és rákattintva odaugrik.
Köszi a segítséget!
fulekitrading.wordpress.com
-
Pakliman
tag
válasz tomi_x #44145 üzenetére
Az A oszlop tartalmazza az "azonosítót", az E oszlopba kell rakni a képletet.
A képen a D oszlop tartalmazza az értéket, amit összesíteni akarsz.
Ha a tényleges táblázatban ez a bizonyos D (vagyis az érték) nem szerepel, akkor hozd létre, mint segédoszlop és a képletben arra az oszlopra hivatkozz.[ Szerkesztve ]
-
Mutt
aktív tag
válasz tomi_x #44143 üzenetére
Szia,
Ha tényleg az kell hogy az ismétlődések maradjanak, és csak az utolsó előfordulásnál írja ki a szorzatösszeget, akkor ez a képlet:
=HA(DARABTELI(A$2:A2;A2)=DARABTELI(A$2:A$14;A2);SZORZATÖSSZEG(--(A$2:A$14=A2);B$2:B$14;C$2:C$14);"")
üdv
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
-
lappy
őstag
válasz kokokka #44148 üzenetére
D3 kell osztani
A képlet meg inkább szum(A3:C3)/D3
Az átlag jóval kevesebb ha ugyanúgy szamolsz mint mint az összes bevétel tényleges 1 főre jutó szama
Mert a 250/3/7 az tényleg 11904
Amíg az új képlet szerint pedig 250/7 az pedig 35714[ Szerkesztve ]
Bámulatos hol tart már a tudomány!
Új hozzászólás Aktív témák
- Eredeti Windows 10, Windows 11, Office Akció: Office 2021, Office 2019, Office 2016 csak Retail
- BIG BOX! - MechWarrior 2 - Pentium Edition, Ghost Bears Legacy (Exp.), MechCommander
- Office 2021 Home Business Mac/PC Licensz Fizikai Kártya
- Final Fantasy XIII + Final Fantasy XIII-2 + Square Enix kód
- COD MW2, COD 2019, COD COLD WAR eladó.
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs