Hirdetés

Új hozzászólás Aktív témák

  • Richard
    őstag

    Szia!
    Úgy tűnik, rosszul raktam össze a célba való másolást, az első másolás miatt pedig betettem egy vizsgálatot.
    If celtabla.Range(2, 1).Value = "" Then
       celtabla.Range(2, 1).PasteSpecial xlPasteValues
    Else
       celtabla.ListColumns(1).DataBodyRange.Cells(1).End(xlDown).Offset(1, 0).Paste Paste:=xlPasteValues
    End If
    Azt írtad, hogy több táblából másolsz. Ha ez kevés számú, akkor lehet egymás után többször leírni a kódot más-más táblanevekkel. De már 3 után is megéri ciklusba szervezni. A kérdés az, hogy a táblák külön-külön munkalapon vannak-e (feltételezem), de ugyanazon munkafüzetben..
    Ebben az esetben a ciklus:
    Sub a()
    Dim sh As Worksheet, tbl As ListObject
    For Each sh In Worksheets
       If sh.ListObjects.Count > 0 Then
          For Each tbl In sh.ListObjects
             With tbl
                Union(.ListColumns("Név").DataBodyRange, .ListColumns("Cím").DataBodyRange…..).Copy
             End With
             If celtabla.Range(2, 1).Value = "" Then
                celtabla.Range(2, 1).PasteSpecial xlPasteValues
             Else
                celtabla.ListColumns(1).DataBodyRange.Cells(1).End(xlDown).Offset(1, 0).Paste Paste:=xlPasteValues
             End If
          Next
       End If
    Next
    End Sub

    Üdv.
    Ps.
    "a táblázat alá ugrik és amikor beilleszti a következő oszlopokat, akkor automatán kiterjeszti a táblát is."
    Miért, nem kellene a táblázatot kiterjesztenie a beillesztett adatokra?

    De igen az a cél, és működik is, köszönöm még egyszer!

    A program is működik, de nem tudom használni sajnos mert igaz csak 1 tábla/munkalap van, de vannak olyan munkalapok ahol egyéb számításhoz szükséges változók és egyebek vannak szintén külön táblában.

  • Fferi50
    Topikgazda

    :R

    Köszönöm, így tökéletes a kijelölés.

    A másolást azonban nem hajtja végre csak akkor, ha ezt írom:

    celtabla.Range(2, 1).PasteSpecial xlPasteValues

    Így azonban mindig legfelülről kezdi sajnos.

    Az általad írt kódra kiáll ezzel a hibával:

    Amennyiben üres még a tábla:
    Run-time error '91': Object variable or With block variable not set

    Amennyiben már van a táblában egy "adag" másolva:
    Run-time error '438' Object doesn't support this property or method

    Mit rontok el?

    "Természetesen a sok tábla másolását csinálhatod ciklussal és akkor a forrás tábla neve helyett az indexét használhatod."

    Ezt pedig nem is igazán értem :B

    Szia!
    Úgy tűnik, rosszul raktam össze a célba való másolást, az első másolás miatt pedig betettem egy vizsgálatot.
    If celtabla.Range(2, 1).Value = "" Then
       celtabla.Range(2, 1).PasteSpecial xlPasteValues
    Else
       celtabla.ListColumns(1).DataBodyRange.Cells(1).End(xlDown).Offset(1, 0).Paste Paste:=xlPasteValues
    End If
    Azt írtad, hogy több táblából másolsz. Ha ez kevés számú, akkor lehet egymás után többször leírni a kódot más-más táblanevekkel. De már 3 után is megéri ciklusba szervezni. A kérdés az, hogy a táblák külön-külön munkalapon vannak-e (feltételezem), de ugyanazon munkafüzetben..
    Ebben az esetben a ciklus:
    Sub a()
    Dim sh As Worksheet, tbl As ListObject
    For Each sh In Worksheets
       If sh.ListObjects.Count > 0 Then
          For Each tbl In sh.ListObjects
             With tbl
                Union(.ListColumns("Név").DataBodyRange, .ListColumns("Cím").DataBodyRange…..).Copy
             End With
             If celtabla.Range(2, 1).Value = "" Then
                celtabla.Range(2, 1).PasteSpecial xlPasteValues
             Else
                celtabla.ListColumns(1).DataBodyRange.Cells(1).End(xlDown).Offset(1, 0).Paste Paste:=xlPasteValues
             End If
          Next
       End If
    Next
    End Sub

    Üdv.
    Ps.
    "a táblázat alá ugrik és amikor beilleszti a következő oszlopokat, akkor automatán kiterjeszti a táblát is."
    Miért, nem kellene a táblázatot kiterjesztenie a beillesztett adatokra?

  • Richard
    őstag

    :R

    Köszönöm, így tökéletes a kijelölés.

    A másolást azonban nem hajtja végre csak akkor, ha ezt írom:

    celtabla.Range(2, 1).PasteSpecial xlPasteValues

    Így azonban mindig legfelülről kezdi sajnos.

    Az általad írt kódra kiáll ezzel a hibával:

    Amennyiben üres még a tábla:
    Run-time error '91': Object variable or With block variable not set

    Amennyiben már van a táblában egy "adag" másolva:
    Run-time error '438' Object doesn't support this property or method

    Mit rontok el?

    "Természetesen a sok tábla másolását csinálhatod ciklussal és akkor a forrás tábla neve helyett az indexét használhatod."

    Ezt pedig nem is igazán értem :B

    Így működik:

    celtabla.DataBodyRange.End(xlDown).Offset(1, 0).PasteSpecial xlPasteValues

    Így annyi a szépséghiba, hogy a táblázat alá ugrik és amikor beilleszti a következő oszlopokat, akkor automatán kiterjeszti a táblát is.

  • Richard
    őstag

    Szia!

    1. Amennyiben a cél táblába egymás mellé kerülnek az oszlopok, akkor az Union függvény használatával egyben átmásolható a kívánt oszlopszám:
    Az értékek átmásolásához célszerű a céltáblát változóba tenni:
    Dim celtabla As Listobject, usor As Long
    Set celtabla =Worksheets("Munka_cel").Listobjects("Tbl_cel")
    With Worksheets("Munka_forras").Listobjects("Tbl_forras_1").
    Union(.Listcolumns("Név").Databodyrange,.Listcolumns("Cím").Databodyrange…..).Copy
    End With
    2. A céltábla utolsó sor után a bemásolás:
    celtabla.Databodyrange.Listcolumns(1).Cells(1).End(xlDown).Offset(1,0).Paste Paste:=xlPasteValues

    Az első másolásnál még maradhat a Range(2,1), de ne feledd ekkor egyben jön a 8 oszlop adata már.
    Természetesen a sok tábla másolását csinálhatod ciklussal és akkor a forrás tábla neve helyett az indexét használhatod.
    Ha kérdésed lenne, csak írj.

    Üdv.

    :R

    Köszönöm, így tökéletes a kijelölés.

    A másolást azonban nem hajtja végre csak akkor, ha ezt írom:

    celtabla.Range(2, 1).PasteSpecial xlPasteValues

    Így azonban mindig legfelülről kezdi sajnos.

    Az általad írt kódra kiáll ezzel a hibával:

    Amennyiben üres még a tábla:
    Run-time error '91': Object variable or With block variable not set

    Amennyiben már van a táblában egy "adag" másolva:
    Run-time error '438' Object doesn't support this property or method

    Mit rontok el?

    "Természetesen a sok tábla másolását csinálhatod ciklussal és akkor a forrás tábla neve helyett az indexét használhatod."

    Ezt pedig nem is igazán értem :B

  • Fferi50
    Topikgazda

    Sziasztok!

    Kezdő vagyok nagyon VBA-ban és elakadtam. Ebben kérnék segítséget, mert hiába túrom a netet egyszerűen nem áll össze amit szeretnék megvalósítani.

    A szituáció:

    Adott több táblázatként formázott tábla.
    A forrás táblákban rengeteg oszlop van (80)
    A cél táblában 8 oszlop van.
    Az összes forrás táblából adott 8 oszlopot (nem egymás mellett levőket) szeretnék a cél táblába másolni úgy, hogy a fejléc ne, de az összes érték átkerüljön.
    Az első táblánál még csak rendben is van, hogy egyenként bemásoltatom az oszlopokat, de a második táblánál meg kellene kerestetni a céltábla adott oszlopának utolsó adatot tartalmazó celláját, hogy az alá tegye a következő oszlopot.

    Eddig jutottam:

    Private Sub CommandButton6_Click()    

    Worksheets("Munka_forras").ListObjects("Tbl_forras_1").ListColumns("Név").DataBodyRange.Copy
    Worksheets("Munka_cel").ListObjects("Tbl_cel").Range(2, 1).PasteSpecial xlPasteValues
    Worksheets("Munka_forras").ListObjects("Tbl_forras_1").ListColumns("Cim").DataBodyRange.Copy
    Worksheets("Munka_cel").ListObjects("Tbl_cel").Range(2, 2).PasteSpecial xlPasteValues

    End Sub

    Kérdés:

    Nem lehet valahogy össze vonni, hogy ezeket a másolásokat egyszerre végezze? Tehát kijelöli az összes oszlop adatát amit szeretnék és egyszerre bemásolja?!

    Hogy tudom megoldnai, hogy ne a Range(2,2) -vel monjam meg hova tegye, hanem mondjuk az oszlop nevét adjam meg ?!

    A második táblánál hogy fogom megmondani, hogy a már létező adatok alá másoljon?

    Ezt találtam:

    With ActiveSheet         LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row     End With

    Csak sehogy nem bírom beilleszteni.

    Valaki tudna ebben segíteni?

    Köszönöm

    Szia!

    1. Amennyiben a cél táblába egymás mellé kerülnek az oszlopok, akkor az Union függvény használatával egyben átmásolható a kívánt oszlopszám:
    Az értékek átmásolásához célszerű a céltáblát változóba tenni:
    Dim celtabla As Listobject, usor As Long
    Set celtabla =Worksheets("Munka_cel").Listobjects("Tbl_cel")
    With Worksheets("Munka_forras").Listobjects("Tbl_forras_1").
    Union(.Listcolumns("Név").Databodyrange,.Listcolumns("Cím").Databodyrange…..).Copy
    End With
    2. A céltábla utolsó sor után a bemásolás:
    celtabla.Databodyrange.Listcolumns(1).Cells(1).End(xlDown).Offset(1,0).Paste Paste:=xlPasteValues

    Az első másolásnál még maradhat a Range(2,1), de ne feledd ekkor egyben jön a 8 oszlop adata már.
    Természetesen a sok tábla másolását csinálhatod ciklussal és akkor a forrás tábla neve helyett az indexét használhatod.
    Ha kérdésed lenne, csak írj.

    Üdv.

  • Richard
    őstag

    Sziasztok!

    Kezdő vagyok nagyon VBA-ban és elakadtam. Ebben kérnék segítséget, mert hiába túrom a netet egyszerűen nem áll össze amit szeretnék megvalósítani.

    A szituáció:

    Adott több táblázatként formázott tábla.
    A forrás táblákban rengeteg oszlop van (80)
    A cél táblában 8 oszlop van.
    Az összes forrás táblából adott 8 oszlopot (nem egymás mellett levőket) szeretnék a cél táblába másolni úgy, hogy a fejléc ne, de az összes érték átkerüljön.
    Az első táblánál még csak rendben is van, hogy egyenként bemásoltatom az oszlopokat, de a második táblánál meg kellene kerestetni a céltábla adott oszlopának utolsó adatot tartalmazó celláját, hogy az alá tegye a következő oszlopot.

    Eddig jutottam:

    Private Sub CommandButton6_Click()    

    Worksheets("Munka_forras").ListObjects("Tbl_forras_1").ListColumns("Név").DataBodyRange.Copy
    Worksheets("Munka_cel").ListObjects("Tbl_cel").Range(2, 1).PasteSpecial xlPasteValues
    Worksheets("Munka_forras").ListObjects("Tbl_forras_1").ListColumns("Cim").DataBodyRange.Copy
    Worksheets("Munka_cel").ListObjects("Tbl_cel").Range(2, 2).PasteSpecial xlPasteValues

    End Sub

    Kérdés:

    Nem lehet valahogy össze vonni, hogy ezeket a másolásokat egyszerre végezze? Tehát kijelöli az összes oszlop adatát amit szeretnék és egyszerre bemásolja?!

    Hogy tudom megoldnai, hogy ne a Range(2,2) -vel monjam meg hova tegye, hanem mondjuk az oszlop nevét adjam meg ?!

    A második táblánál hogy fogom megmondani, hogy a már létező adatok alá másoljon?

    Ezt találtam:

    With ActiveSheet         LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row     End With

    Csak sehogy nem bírom beilleszteni.

    Valaki tudna ebben segíteni?

    Köszönöm

  • Sziasztok!

    Van egy Excel fájlom, amiben a megjegyzések nem jelennek meg. Tudom, kapcsolgattam már a megjegyzések megjelenítése gombot :DDD A megjegyzést jelző kis piros háromszög megvan, sőt ha ráviszem az egeret, akkor a megjegyzés nyila is látható, de semmi más:

    Mi lehet a megoldás? Volt már ilyen problémája másnak is? Ha ilyenre keresek Google barátom mindig csak a megjegyzések megjelenítése gombot hozza sajnos :W

    Köszi!

    Szerk.: közben találtam rá megoldást :) valahogy a szélességük lett lenullázva. Jobb klikk / jegyzet szerkesztése és átméretezés után már jó! :DDD

  • Peterhappy
    addikt

    Szia!
    A PowerPivotból tudja normálisan. Lépések:
    A fejlesztőeszközök - Com bővítmények között aktíválod a PoverPivot bővítményt
    1. Nyitsz egy új üres munkafüzetet.
    2. Átmész a PP ablakba - a Kezelés menüponttal
    3. Kezdőlap - Külső adatok beolvasása -- Más forrásokból - kiválasztod az Excel fájlt,
    4. Kiválasztod az Excel fájlod, amiben az adatok vannak.
    5. Kiválasztod a munkalapot belőle ($ jel lesz a név végén).
    6.Beolvasás. - ha vannak ott olyan adatok, amelyekre nincs szükséged, törölhetők
    7. Még mindig a PP ablak Kezdőlap fülén - Kimutatás
    és innentől úgy, mint az Excelben, kiválasztod a mezőket és az összegzési függvényeket, a kimutatás az Excel munkalapra készül el.
    Ez már normálisan formázza a dátumot. (Legalábbis nálam így volt.)

    Üdv.

    Szia Feri,

    Nem semmi, köszönöm szépen. Ez nekem már nagyon magasröptű, de annyit fáradoztatok vele, hogy a legkevesebb, hogy ki fogom próbálni! Épp egy Windows reinstall után lábadozok, legkésőbb holnap kipróbálom és jelentkezem!

  • Fferi50
    Topikgazda

    Hát ez zseniális :C

    Egy kicsit most örülök, hogy ezek szerint nem én vagyok iszonyatosan láma, hanem az office 2016 :D

    Ennyit az egész nem ér, túl fogom élni, ha nem tudok havi összegzést csinálni, már így is nagyon-nagyon jól néz ki a dolog, ne fáradj, ne fáradtjatok vele többet! És köszönöm, le a kalappal előttetek, nagyon sokat segítettetek + hozzám vaskos mennyiségű türelem kell, szóval tényleg nagyon köszönöm mindannyiótoknak :R :R

    Szia!
    A PowerPivotból tudja normálisan. Lépések:
    A fejlesztőeszközök - Com bővítmények között aktíválod a PoverPivot bővítményt
    1. Nyitsz egy új üres munkafüzetet.
    2. Átmész a PP ablakba - a Kezelés menüponttal
    3. Kezdőlap - Külső adatok beolvasása -- Más forrásokból - kiválasztod az Excel fájlt,
    4. Kiválasztod az Excel fájlod, amiben az adatok vannak.
    5. Kiválasztod a munkalapot belőle ($ jel lesz a név végén).
    6.Beolvasás. - ha vannak ott olyan adatok, amelyekre nincs szükséged, törölhetők
    7. Még mindig a PP ablak Kezdőlap fülén - Kimutatás
    és innentől úgy, mint az Excelben, kiválasztod a mezőket és az összegzési függvényeket, a kimutatás az Excel munkalapra készül el.
    Ez már normálisan formázza a dátumot. (Legalábbis nálam így volt.)

    Üdv.

  • Peterhappy
    addikt

    Szia!
    Te most fogod a fejed a falba verni, én már túlvagyok rajta! :D
    El kell felejteni az Excel dátumbontását, mert egyszerűen nem működik tisztességesen a kimutatásban. Ahhoz hogy rendesen láthassuk a nap - hónap - év felépítését és a napok "olvasható" formában szerepeljenek, mindent amit eddig gondoltunk, sutba kell dobni. Legalábbis a 2016-os Excel ilyen rettenetesen viselkedik, hiába állítgatjuk a formátumot, az neki smafu.
    Mit is kellett csinálnom, hogy ilyen formátumú kimutatást kapjak:

    Három + oszlopot csináltam.
    1. oszlop az évet tartalmazta az év függvény szerint (azaz =ÉV(A2))
    2. oszlop a hónapok nevét a HÓNAP függvény és a Választ függvény használatával:
    =VÁLASZT(HÓNAP(A2);"JANUÁR";"FEBRUÁR";"MÁRCIUS";"ÁPRILIS";"MÁJUS";"JÚNIUS";"JÚLIUS";"AUGUSZTUS";"SZEPTEMBER";"OKTÓBER";"NOVEMBER";"DECEMBER")
    3. oszlop a dátumot szöveg formátumban:
    =ÉV(A2) & "." & JOBB("00" & HÓNAP(A2);2) &  "." &JOBB("00" & NAP(A2);2)
    Ezután a kimutatásba ez a három oszlop került be és szépen is mutat.

    Nem tudom, mitől bolondult meg, mert a korábbi Excelben létrehozott kimutatásaim szépen működnek dátum alábontással továbbra is.
    Talán a korábban létrehozott oszlopaid közül fel tudsz használni párat....
    Még utána nézek, hogy Power Pivotban lehet-e valamit varázsolni. mert ez így nagyon-nagyon gáz szerintem.

    Üdv.

    Hát ez zseniális :C

    Egy kicsit most örülök, hogy ezek szerint nem én vagyok iszonyatosan láma, hanem az office 2016 :D

    Ennyit az egész nem ér, túl fogom élni, ha nem tudok havi összegzést csinálni, már így is nagyon-nagyon jól néz ki a dolog, ne fáradj, ne fáradtjatok vele többet! És köszönöm, le a kalappal előttetek, nagyon sokat segítettetek + hozzám vaskos mennyiségű türelem kell, szóval tényleg nagyon köszönöm mindannyiótoknak :R :R

  • Fferi50
    Topikgazda

    Szia Feri!

    Köszönöm szépen a segítséget, ez egy nagyon szép megoldás és tök jól is sikerült :K
    Viszont egy dolgot még mindig nem értek :D

    Végre van számformátum gombom is, de hiába állítok ott be bármit is, nincs ráhatással az értékre. Dátum a forrás formátuma (általános-ra állítva nem is látszott a gomb).

    "Más: Nem értem, ha a dátum oszlopodnak Dátumérték a mezőneve, akkor a kimutatásodban miért nem az az oszlop van benne?"
    Utólag, direkt a print screen miatt neveztem át őket, hogy érthetőbb legyen, hol és mit csináltam. :B

    Szia!
    Te most fogod a fejed a falba verni, én már túlvagyok rajta! :D
    El kell felejteni az Excel dátumbontását, mert egyszerűen nem működik tisztességesen a kimutatásban. Ahhoz hogy rendesen láthassuk a nap - hónap - év felépítését és a napok "olvasható" formában szerepeljenek, mindent amit eddig gondoltunk, sutba kell dobni. Legalábbis a 2016-os Excel ilyen rettenetesen viselkedik, hiába állítgatjuk a formátumot, az neki smafu.
    Mit is kellett csinálnom, hogy ilyen formátumú kimutatást kapjak:

    Három + oszlopot csináltam.
    1. oszlop az évet tartalmazta az év függvény szerint (azaz =ÉV(A2))
    2. oszlop a hónapok nevét a HÓNAP függvény és a Választ függvény használatával:
    =VÁLASZT(HÓNAP(A2);"JANUÁR";"FEBRUÁR";"MÁRCIUS";"ÁPRILIS";"MÁJUS";"JÚNIUS";"JÚLIUS";"AUGUSZTUS";"SZEPTEMBER";"OKTÓBER";"NOVEMBER";"DECEMBER")
    3. oszlop a dátumot szöveg formátumban:
    =ÉV(A2) & "." & JOBB("00" & HÓNAP(A2);2) &  "." &JOBB("00" & NAP(A2);2)
    Ezután a kimutatásba ez a három oszlop került be és szépen is mutat.

    Nem tudom, mitől bolondult meg, mert a korábbi Excelben létrehozott kimutatásaim szépen működnek dátum alábontással továbbra is.
    Talán a korábban létrehozott oszlopaid közül fel tudsz használni párat....
    Még utána nézek, hogy Power Pivotban lehet-e valamit varázsolni. mert ez így nagyon-nagyon gáz szerintem.

    Üdv.

  • Fferi50
    Topikgazda

    Szia Feri!

    Köszönöm szépen a segítséget, ez egy nagyon szép megoldás és tök jól is sikerült :K
    Viszont egy dolgot még mindig nem értek :D

    Végre van számformátum gombom is, de hiába állítok ott be bármit is, nincs ráhatással az értékre. Dátum a forrás formátuma (általános-ra állítva nem is látszott a gomb).

    "Más: Nem értem, ha a dátum oszlopodnak Dátumérték a mezőneve, akkor a kimutatásodban miért nem az az oszlop van benne?"
    Utólag, direkt a print screen miatt neveztem át őket, hogy érthetőbb legyen, hol és mit csináltam. :B

    Szia!
    ny.janosé az ötlet, nem akarnék más tollával ékeskedni.
    A számformázással küzdök egyet én is, mert most nálam is határozottan ellenkezik velem az Excel. :(
    Üdv.

  • karlkani
    aktív tag

    Szia!
    Ebben az esetben nem kell hozzá segédoszlop! Elég egy tömbképlet, hogy az eredményt lásd:
    Pl.
    =SZUM(DARABTELI(Ünnepnapok;$C$2200:$C$2255))
    Ez akkor ad jó értéket, ha egy ünnepnap csak egyszer fordul elő a keresendő értékek között. Ha többször is előfordulhat, akkor
    =SZUM((DARABTELI(Ünnepnapok;$C$2200:$C$2255)>0)*1)
    a tömbképlet. Azaz Shift+Ctrl+Enterrel kell bevinni és kapcsos zárójelek közé teszi az Excel.
    VBA-ban pedig:
    Range("X2").FormulaArray="=SUM((COUNTIF(Ünnepnapok,$C$2200:$C$2255)>0)*1)"

    Üdv.

    Szia!

    Egyszer fordul elő minden dátum, évenként.
    {=SZUM(DARABTELI(Ünnepnapok;$C$2251:$C$2280))}

    Ez a kód szuperül működik, köszönöm szépen! :R

  • Peterhappy
    addikt

    Szia!
    Működik az adatok - szövegből oszlopok menüpont az Excelben megában. Nem kell hozzá Power Query.
    Adatok - szövegből oszlopok - tagolt - a következő lapon (2. lépés) bejelölöd elválasztónak a szóközt. A következő lapon (3.lépés) az első oszlopra bejelölöd, hogy dátum NHÉ formátumban. Megadod hova kerüljön - nyilván a mellette levő oszlopba, hogy a forrás megmaradjon.
    Ezután valóban dátum lesz az az oszlop, amibe az első része kerül az adatnak.
    Más: Nem értem, ha a dátum oszlopodnak Dátumérték a mezőneve, akkor a kimutatásodban miért nem az az oszlop van benne?

    Üdv.

    Szia Feri!

    Köszönöm szépen a segítséget, ez egy nagyon szép megoldás és tök jól is sikerült :K
    Viszont egy dolgot még mindig nem értek :D

    Végre van számformátum gombom is, de hiába állítok ott be bármit is, nincs ráhatással az értékre. Dátum a forrás formátuma (általános-ra állítva nem is látszott a gomb).

    "Más: Nem értem, ha a dátum oszlopodnak Dátumérték a mezőneve, akkor a kimutatásodban miért nem az az oszlop van benne?"
    Utólag, direkt a print screen miatt neveztem át őket, hogy érthetőbb legyen, hol és mit csináltam. :B

  • karlkani
    aktív tag

    Gondolom, egy F9 (újraszámolás) is rendbe teszi.
    Megadhatod az application.volatile -t is a makró elején, de úgy vettem észre, hogy nem mindig használ.

    Sajnos nem csinál ilyen estben semmit az F9 billentyűre. :(
    Minden alkalommal újraszámolja ezeket a cellákat a füzet megnyitásakor, kivéve, amikor "meghülyül". Akkor csak az segít, amit az előzőben írtam.

    Mindegy, megoldható egy pillanat alatt, csak bosszantó...

  • Fferi50
    Topikgazda

    Szia!

    Nem írtam, hogy nem jó. Módosítottam, hogy a sok 0-t ne lássam, ennyi... :DDD
    Értesítéssel vannak tiltva a beállításokban (nem módosítottam, gondolom ez a gyári beállítás).

    Szia!
    Ebben az esetben nem kell hozzá segédoszlop! Elég egy tömbképlet, hogy az eredményt lásd:
    Pl.
    =SZUM(DARABTELI(Ünnepnapok;$C$2200:$C$2255))
    Ez akkor ad jó értéket, ha egy ünnepnap csak egyszer fordul elő a keresendő értékek között. Ha többször is előfordulhat, akkor
    =SZUM((DARABTELI(Ünnepnapok;$C$2200:$C$2255)>0)*1)
    a tömbképlet. Azaz Shift+Ctrl+Enterrel kell bevinni és kapcsos zárójelek közé teszi az Excel.
    VBA-ban pedig:
    Range("X2").FormulaArray="=SUM((COUNTIF(Ünnepnapok,$C$2200:$C$2255)>0)*1)"

    Üdv.

  • Delila_1
    veterán

    Szia!

    Értem. :O
    Jól sejted, van egy másik lap, onnan nézi a dátumokat.

    (#42073) ny.janos
    Feltételes formázásnál ez a képlet szerepel: =DARABTELI(Ünnepnapok;$C1)>0

    (#42076) Delila_1
    Ezzel a képlettel működik:
    =HA(DARABTELI(Ünnepnapok;C2251)>0;DARABTELI(Ünnepnapok;C2251);"")

    Annak idején segítettél nekem létrehozni ezt a makrót:
    Function Orak(tartomany As Range)
        Dim CV As Range, osszeg As Double, WSD As Worksheet, WF As WorksheetFunction
        
        Set WSD = Sheets("Dátum")
        Set WF = Application.WorksheetFunction
        
            For Each CV In tartomany
            If Not IsNumeric(CV) Or CV = "" Then GoTo Tovabb
            If WF.CountIf(WSD.Columns(4), Cells(CV.Row, "C")) = 0 And _
                WF.CountIf(WSD.Columns(6), Cells(CV.Row, "C")) = 0 And _
                WF.Weekday(Cells(CV.Row, "C"), 2) < 6 Or _
                WF.CountIf(WSD.Columns(2), Cells(CV.Row, "C")) > 0 Then osszeg = osszeg + CV
    Tovabb:
        Next
        Orak = osszeg
    End Function

    Már többször előfordult, hogy a füzet megnyitásakor az összes olyan cella értéke, ami ezt a makrót használja összegzésre 0-ra módosult. Csak úgy tudtam újraszámoltatni, hogy a cellára álltam, szerkesztőléc, Enter (sok cellánál ez elég macerás), vagy átneveztem a fájlt, vagy töröltem a fájlra vonatkozó bejegyzést a regisztrációs adatbázisból az alábbi helyen.
    HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\Security\Trusted Documents\TrustRecords

    Ötlet? :F

    Gondolom, egy F9 (újraszámolás) is rendbe teszi.
    Megadhatod az application.volatile -t is a makró elején, de úgy vettem észre, hogy nem mindig használ.

  • karlkani
    aktív tag

    Szia!
    A segédoszlopban miért nem jó neked Delila képlete, hiszen az csak akkor ad 0-nál nagyobb értéket, ha előfordul az ünnepnapok között az érték. Számolásnál nem mindegy neked, hogy össze kell adni az értéket vagy megszámolni hány db 0-nál nagyobb érték van?
    A második kérdésre csak tippem van: nem lehet, hogy ilyenkor értesítés nélkül le van tiltva a makró futtatás az Excelben a biztonsági beállítások között?

    Üdv.

    Szia!

    Nem írtam, hogy nem jó. Módosítottam, hogy a sok 0-t ne lássam, ennyi... :DDD
    Értesítéssel vannak tiltva a beállításokban (nem módosítottam, gondolom ez a gyári beállítás).

  • Fferi50
    Topikgazda

    Szia!

    Értem. :O
    Jól sejted, van egy másik lap, onnan nézi a dátumokat.

    (#42073) ny.janos
    Feltételes formázásnál ez a képlet szerepel: =DARABTELI(Ünnepnapok;$C1)>0

    (#42076) Delila_1
    Ezzel a képlettel működik:
    =HA(DARABTELI(Ünnepnapok;C2251)>0;DARABTELI(Ünnepnapok;C2251);"")

    Annak idején segítettél nekem létrehozni ezt a makrót:
    Function Orak(tartomany As Range)
        Dim CV As Range, osszeg As Double, WSD As Worksheet, WF As WorksheetFunction
        
        Set WSD = Sheets("Dátum")
        Set WF = Application.WorksheetFunction
        
            For Each CV In tartomany
            If Not IsNumeric(CV) Or CV = "" Then GoTo Tovabb
            If WF.CountIf(WSD.Columns(4), Cells(CV.Row, "C")) = 0 And _
                WF.CountIf(WSD.Columns(6), Cells(CV.Row, "C")) = 0 And _
                WF.Weekday(Cells(CV.Row, "C"), 2) < 6 Or _
                WF.CountIf(WSD.Columns(2), Cells(CV.Row, "C")) > 0 Then osszeg = osszeg + CV
    Tovabb:
        Next
        Orak = osszeg
    End Function

    Már többször előfordult, hogy a füzet megnyitásakor az összes olyan cella értéke, ami ezt a makrót használja összegzésre 0-ra módosult. Csak úgy tudtam újraszámoltatni, hogy a cellára álltam, szerkesztőléc, Enter (sok cellánál ez elég macerás), vagy átneveztem a fájlt, vagy töröltem a fájlra vonatkozó bejegyzést a regisztrációs adatbázisból az alábbi helyen.
    HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\Security\Trusted Documents\TrustRecords

    Ötlet? :F

    Szia!
    A segédoszlopban miért nem jó neked Delila képlete, hiszen az csak akkor ad 0-nál nagyobb értéket, ha előfordul az ünnepnapok között az érték. Számolásnál nem mindegy neked, hogy össze kell adni az értéket vagy megszámolni hány db 0-nál nagyobb érték van?
    A második kérdésre csak tippem van: nem lehet, hogy ilyenkor értesítés nélkül le van tiltva a makró futtatás az Excelben a biztonsági beállítások között?

    Üdv.

  • karlkani
    aktív tag

    Szia!
    Mivel feltételes formázás van, ezért a DisplayFormat tulajdonságot kell használni, ezt viszont függvényben sajnos nem tudja a VBA (a 2016-os legalábbis). Ezért nem függvényt, hanem Sub-ot kell használni:
    Public Sub CountColor(pRange1 As Range, pRange2 As Range)
    Dim rng As Range, xcolor As Long, CountColor As Integer
    xcolor = pRange2.DisplayFormat.Font.color
    For Each rng In pRange1
        If rng.DisplayFormat.Font.color = xcolor Then
            CountColor = CountColor + 1
        End If
    Next
    Range("A1").Value = CountColor 'ide azt a cella címet írd, ahová az eredményt szeretnéd
    End Sub
    Ezt viszont nem lehet felhasználói függvényként meghívni. A két paraméter ugyanaz, mint az általad leírt függvényben, pRange1 amiben keressük a cellákat, pRange2 aminek a színét számoljuk. Azért talán ezzel is tudsz ügyeskedni.
    Más ötlet. Talán mégsem a színek szerinti összesítés a nyerő. Feltételezem, hogy a feltételes formázásnak a feltételei valamilyen táblázat alapján működnek (jó kis mondat lett a feltételek halmozásával... :) ), mivel írtad, hogy pl. ünnepnapok. Ez alapján is lehetne a számolást elvégezni makró nélkül, valamilyen számláló képlettel, ami megvizsgálja, hogy az adott dátum benne van-e a "táblázatban". Szóval én nem vetném el ny.janos ötletét sem.

    Üdv.

    Szia!

    Értem. :O
    Jól sejted, van egy másik lap, onnan nézi a dátumokat.

    (#42073) ny.janos
    Feltételes formázásnál ez a képlet szerepel: =DARABTELI(Ünnepnapok;$C1)>0

    (#42076) Delila_1
    Ezzel a képlettel működik:
    =HA(DARABTELI(Ünnepnapok;C2251)>0;DARABTELI(Ünnepnapok;C2251);"")

    Annak idején segítettél nekem létrehozni ezt a makrót:
    Function Orak(tartomany As Range)
        Dim CV As Range, osszeg As Double, WSD As Worksheet, WF As WorksheetFunction
        
        Set WSD = Sheets("Dátum")
        Set WF = Application.WorksheetFunction
        
            For Each CV In tartomany
            If Not IsNumeric(CV) Or CV = "" Then GoTo Tovabb
            If WF.CountIf(WSD.Columns(4), Cells(CV.Row, "C")) = 0 And _
                WF.CountIf(WSD.Columns(6), Cells(CV.Row, "C")) = 0 And _
                WF.Weekday(Cells(CV.Row, "C"), 2) < 6 Or _
                WF.CountIf(WSD.Columns(2), Cells(CV.Row, "C")) > 0 Then osszeg = osszeg + CV
    Tovabb:
        Next
        Orak = osszeg
    End Function

    Már többször előfordult, hogy a füzet megnyitásakor az összes olyan cella értéke, ami ezt a makrót használja összegzésre 0-ra módosult. Csak úgy tudtam újraszámoltatni, hogy a cellára álltam, szerkesztőléc, Enter (sok cellánál ez elég macerás), vagy átneveztem a fájlt, vagy töröltem a fájlra vonatkozó bejegyzést a regisztrációs adatbázisból az alábbi helyen.
    HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\Security\Trusted Documents\TrustRecords

    Ötlet? :F

  • Fferi50
    Topikgazda

    Szia!
    A munkafüzetet makróbarátként (xlsm kiterjesztés) vagy binárisként (xlsb) kell elmentened.
    Ellenkező esetben a makrók nem mentődnek el.

    Üdv.

    Vagy figyelmeztetés nélkül le vannak tiltva a makrók a biztonsági beállításokban:

    Ezt állítsd át, hogy futtathassa a makrót.

  • Bobrooney
    senior tag

    Helló! Bemásoltam, de hiába mentem el a munkafüzetet, legközelebb már nem csinál semmit. Asszem feladom...
    :DDD

    Makróbarát Excel munkafüzetként mentsd el. De elvileg mentés előtt figyelmeztet is hogy ha nem változtatsz fájl formátumot akkor elvesznek a makróid.
    Szóval Fájl -> Mentés másként -> xlsm formátumba mentsd el.
    Ha újra nyitod figyelj oda a makróbeállításokra (pl. ne tiltsa le azonnal).

    Remélem tudtam segíteni.

  • Fferi50
    Topikgazda

    Helló! Bemásoltam, de hiába mentem el a munkafüzetet, legközelebb már nem csinál semmit. Asszem feladom...
    :DDD

    Szia!
    A munkafüzetet makróbarátként (xlsm kiterjesztés) vagy binárisként (xlsb) kell elmentened.
    Ellenkező esetben a makrók nem mentődnek el.

    Üdv.

  • TigerCat
    nagyúr

    Szia!
    Az Excel munkalap nézetből az Alt+F11 gomb visz át a VBA (makrós) ablakba.
    Az ablakban normál esetben van egy Projekt rész. Itt láthatod a munkalapjaid és hozzá a Thisworkbook - ot. Arra ráállsz - jobb egérgomb -View Code
    Megjelenik a jobb oldalon a kódlap. Oda másold be.
    Sajnos sem 365 sem Mac nincs nekem, így nem tudom kipróbálni.

    Üdv.

    Helló! Bemásoltam, de hiába mentem el a munkafüzetet, legközelebb már nem csinál semmit. Asszem feladom...
    :DDD

  • Delila_1
    veterán

    A tábla azon részén dátumok szerepelnek (pl.: ünnepnapok), mindenképp szín alapján kell a cellák számát összegezni.

    Egy segédoszlop megoldja. A H2: H14 tartomány neve Ünnepek.

  • Fferi50
    Topikgazda

    Amit írtam csak egy példa volt. Ugyanaz a képlet kell szorzatösszeg vagy a szum függvény képletébe, mint ami a feltételes formázásban van. Ha a feltételes formázás megoldható képlettel, akkor ugyanaz bemásolható az előbbi függvények bármelyikébe is. ;)

    Szia!
    Akkor már talán egyszerűbb, ha a segédoszlopba a feltételes formázás képlete alapján értékeket írunk, mert azokat utána csak meg kell számolni.
    Pl. =HA(A1>30;"C";HA(A1>20;"B";HA(A1>10;"A";"X")))
    Ezután már csak a betüket kell megszámolni DARABTELI függvénnyel.

    Üdv.

  • Fferi50
    Topikgazda

    A tábla azon részén dátumok szerepelnek (pl.: ünnepnapok), mindenképp szín alapján kell a cellák számát összegezni.

    Szia!
    Az előbbi hozzászólásban szereplő makró kiegészíthető egy harmadik paraméterrel, ahova az eredményt kéred.
    Public Sub CountColor(pRange1 As Range, pRange2 As Range,pRange3 As Range)
    Dim rng As Range, xcolor As Long, CountColor As Integer
    xcolor = pRange2.DisplayFormat.Font.color
    For Each rng In pRange1
    If rng.DisplayFormat.Font.color = xcolor Then
    CountColor = CountColor + 1
    End If
    Next
    pRange3.Value = CountColor
    End Sub
    Üdv.

  • A tábla azon részén dátumok szerepelnek (pl.: ünnepnapok), mindenképp szín alapján kell a cellák számát összegezni.

    Amit írtam csak egy példa volt. Ugyanaz a képlet kell szorzatösszeg vagy a szum függvény képletébe, mint ami a feltételes formázásban van. Ha a feltételes formázás megoldható képlettel, akkor ugyanaz bemásolható az előbbi függvények bármelyikébe is. ;)

  • Fferi50
    Topikgazda

    Szia!

    Public Function CountColor(pRange1 As Range, pRange2 As Range) As Double

    Application.Volatile
    Dim rng As Range
    For Each rng In pRange1
        If rng.Font.Color = pRange2.Font.Color Then
            CountColor = CountColor + 1
        End If
    Next
    End Function

    Ezt kellene módosítani (ha lehet egyáltalán...), hogy működjön feltételes formázással módosított betűszín estén.

    Szia!
    Mivel feltételes formázás van, ezért a DisplayFormat tulajdonságot kell használni, ezt viszont függvényben sajnos nem tudja a VBA (a 2016-os legalábbis). Ezért nem függvényt, hanem Sub-ot kell használni:
    Public Sub CountColor(pRange1 As Range, pRange2 As Range)
    Dim rng As Range, xcolor As Long, CountColor As Integer
    xcolor = pRange2.DisplayFormat.Font.color
    For Each rng In pRange1
        If rng.DisplayFormat.Font.color = xcolor Then
            CountColor = CountColor + 1
        End If
    Next
    Range("A1").Value = CountColor 'ide azt a cella címet írd, ahová az eredményt szeretnéd
    End Sub
    Ezt viszont nem lehet felhasználói függvényként meghívni. A két paraméter ugyanaz, mint az általad leírt függvényben, pRange1 amiben keressük a cellákat, pRange2 aminek a színét számoljuk. Azért talán ezzel is tudsz ügyeskedni.
    Más ötlet. Talán mégsem a színek szerinti összesítés a nyerő. Feltételezem, hogy a feltételes formázásnak a feltételei valamilyen táblázat alapján működnek (jó kis mondat lett a feltételek halmozásával... :) ), mivel írtad, hogy pl. ünnepnapok. Ez alapján is lehetne a számolást elvégezni makró nélkül, valamilyen számláló képlettel, ami megvizsgálja, hogy az adott dátum benne van-e a "táblázatban". Szóval én nem vetném el ny.janos ötletét sem.

    Üdv.

  • karlkani
    aktív tag

    Makróhoz nem értek, így abban majd segítenek a nálam okosabbak, de ehhez nem is feltétlen alkalmaznék makrót.
    Beszúrhatsz egy új oszlopot, ahol a feltételes formázás képletét megadod, majd a szorzatösszeg függvénnyel megkapod a kívánt végeredményt. Szorzatösszeg helyett használhatsz szum függvényt is, de azt tömbképletként kell (Ctrl+Shift+Enter) alkalmaznod.
    Segédoszlop nélkül is megoldható. Pl. A1:A31 tartomány azon értékeinek összegzése, amelyek nagyobbak 30-nál:
    =SZORZATÖSSZEG(($A$1:$A$31)*($A$1:$A$31>30))
    vagy tömbképletként
    {=SZUM(($A$1:$A$31)*($A$1:$A$31>30))}

    A tábla azon részén dátumok szerepelnek (pl.: ünnepnapok), mindenképp szín alapján kell a cellák számát összegezni.

  • Szia!

    Public Function CountColor(pRange1 As Range, pRange2 As Range) As Double

    Application.Volatile
    Dim rng As Range
    For Each rng In pRange1
        If rng.Font.Color = pRange2.Font.Color Then
            CountColor = CountColor + 1
        End If
    Next
    End Function

    Ezt kellene módosítani (ha lehet egyáltalán...), hogy működjön feltételes formázással módosított betűszín estén.

    Makróhoz nem értek, így abban majd segítenek a nálam okosabbak, de ehhez nem is feltétlen alkalmaznék makrót.
    Beszúrhatsz egy új oszlopot, ahol a feltételes formázás képletét megadod, majd a szorzatösszeg függvénnyel megkapod a kívánt végeredményt. Szorzatösszeg helyett használhatsz szum függvényt is, de azt tömbképletként kell (Ctrl+Shift+Enter) alkalmaznod.
    Segédoszlop nélkül is megoldható. Pl. A1:A31 tartomány azon értékeinek összegzése, amelyek nagyobbak 30-nál:
    =SZORZATÖSSZEG(($A$1:$A$31)*($A$1:$A$31>30))
    vagy tömbképletként
    {=SZUM(($A$1:$A$31)*($A$1:$A$31>30))}

  • karlkani
    aktív tag

    Szia!
    Lehet már színre szűrni oszloponként. A szűrő pedig az állapotsorban megmondja, hány cellát talált.
    De a Részösszeg függvény 103 számú függvénye is használható a szűrés után.
    Persze ha több oszlopod van, akkor szükség lehet a makróra.

    Üdv.

    Szia!

    Public Function CountColor(pRange1 As Range, pRange2 As Range) As Double

    Application.Volatile
    Dim rng As Range
    For Each rng In pRange1
        If rng.Font.Color = pRange2.Font.Color Then
            CountColor = CountColor + 1
        End If
    Next
    End Function

    Ezt kellene módosítani (ha lehet egyáltalán...), hogy működjön feltételes formázással módosított betűszín estén.

  • karlkani
    aktív tag

    Csak makróval. Ha jól emlékszem ilyen megoldást már írtak itt korábban a fórumban.

    Háttérszín alapján cellaszám, cellaérték összegzésre találtam makrót. Nekem olyan kellene, ami feltételes formázással módosított betűszínű cellák számát összegezi. A táblában több, feltételes formázással módosított betűszínű cella van, melyek közül csak a piros színűek darabszáma kell. Neten csak olyan makrót találtam, ami abban az esetben működik, ha a betűszín nincs feltételes formázással módosítva.

  • Peterhappy
    addikt

    Szia!
    Működik az adatok - szövegből oszlopok menüpont az Excelben megában. Nem kell hozzá Power Query.
    Adatok - szövegből oszlopok - tagolt - a következő lapon (2. lépés) bejelölöd elválasztónak a szóközt. A következő lapon (3.lépés) az első oszlopra bejelölöd, hogy dátum NHÉ formátumban. Megadod hova kerüljön - nyilván a mellette levő oszlopba, hogy a forrás megmaradjon.
    Ezután valóban dátum lesz az az oszlop, amibe az első része kerül az adatnak.
    Más: Nem értem, ha a dátum oszlopodnak Dátumérték a mezőneve, akkor a kimutatásodban miért nem az az oszlop van benne?

    Üdv.

    Kedves Feri es Janos,

    Koszonom a tippet, kiprobalom! :R

  • Fferi50
    Topikgazda

    Sziasztok!

    Az megoldható, hogy egy táblában, feltételes formázással módosított betűszínű cellák számát összegezzem?

    Szia!
    Lehet már színre szűrni oszloponként. A szűrő pedig az állapotsorban megmondja, hány cellát talált.
    De a Részösszeg függvény 103 számú függvénye is használható a szűrés után.
    Persze ha több oszlopod van, akkor szükség lehet a makróra.

    Üdv.

  • Fferi50
    Topikgazda

    Bár a Power Query-t nem igazán ismerem, épphogy csak megpróbáltam használni egyetlen alkalommal, de az biztos, hogy amennyiben a G oszlopban látható riportált adat szóköznél történő szétválasztását választod akkor kettő külön oszlopot fogsz kapni. Az elsőben lesz a kívánt dátumod, míg a másodikban az időpont. Ha ez utóbbira nincs szükséged, akkor törölheted az oszlopot. Ha így töltöd be végül az adataidat, akkor nincs szükséged utána semmilyen képletre ahhoz, hogy dátumot kapj.

    Szia!
    Nem kell hozzá Power Query, az Excelben benne van az Adatok - szövegből oszlopok menüpont.

    Üdv.

  • Fferi50
    Topikgazda

    Szia!

    Én nem a forrás mezőt, hanem az összefűzés eredményét próbáltam a szomszéd cellába átmásolni - ez utóbbit formázta is, míg a forrás mező átalakításánál #érték hibát jelenített meg..

    Így néz ki a riport - soha ilyen rettenetes riportot nem láttam még.


    Az összefűzés képlete:
    =ÖSSZEFŰZ(KÖZÉP(G2;SZÖVEG.KERES("/";G2;4)+1;4);". ";HA(HOSSZ(BAL(G2;SZÖVEG.KERES("/";G2)-1))=2;"";0);BAL(G2;SZÖVEG.KERES("/";G2)-1);". ";HA(HOSSZ(KÖZÉP(G2;SZÖVEG.KERES("/";G2)+1;(SZÖVEG.KERES("/";G2;4)-1)-(SZÖVEG.KERES("/";G2))))=2;"";0);KÖZÉP(G2;SZÖVEG.KERES("/";G2)+1;(SZÖVEG.KERES("/";G2;4)-1)-(SZÖVEG.KERES("/";G2)));".")

    Nem szép, de elvileg működik :) És ebből dátumot is tud csinálni a dátumérték - más kérdés, hogy nem tudom használni.

    Neked is köszönöm a segítséget, tök jó hogy ilyen türelmesek vagytok, ez nekem már nagyon magasröptű :B

    Szia!
    Működik az adatok - szövegből oszlopok menüpont az Excelben megában. Nem kell hozzá Power Query.
    Adatok - szövegből oszlopok - tagolt - a következő lapon (2. lépés) bejelölöd elválasztónak a szóközt. A következő lapon (3.lépés) az első oszlopra bejelölöd, hogy dátum NHÉ formátumban. Megadod hova kerüljön - nyilván a mellette levő oszlopba, hogy a forrás megmaradjon.
    Ezután valóban dátum lesz az az oszlop, amibe az első része kerül az adatnak.
    Más: Nem értem, ha a dátum oszlopodnak Dátumérték a mezőneve, akkor a kimutatásodban miért nem az az oszlop van benne?

    Üdv.

  • Sziasztok!

    Az megoldható, hogy egy táblában, feltételes formázással módosított betűszínű cellák számát összegezzem?

    Csak makróval. Ha jól emlékszem ilyen megoldást már írtak itt korábban a fórumban.

  • karlkani
    aktív tag

    Sziasztok!

    Az megoldható, hogy egy táblában, feltételes formázással módosított betűszínű cellák számát összegezzem?

  • Szia!

    Én nem a forrás mezőt, hanem az összefűzés eredményét próbáltam a szomszéd cellába átmásolni - ez utóbbit formázta is, míg a forrás mező átalakításánál #érték hibát jelenített meg..

    Így néz ki a riport - soha ilyen rettenetes riportot nem láttam még.


    Az összefűzés képlete:
    =ÖSSZEFŰZ(KÖZÉP(G2;SZÖVEG.KERES("/";G2;4)+1;4);". ";HA(HOSSZ(BAL(G2;SZÖVEG.KERES("/";G2)-1))=2;"";0);BAL(G2;SZÖVEG.KERES("/";G2)-1);". ";HA(HOSSZ(KÖZÉP(G2;SZÖVEG.KERES("/";G2)+1;(SZÖVEG.KERES("/";G2;4)-1)-(SZÖVEG.KERES("/";G2))))=2;"";0);KÖZÉP(G2;SZÖVEG.KERES("/";G2)+1;(SZÖVEG.KERES("/";G2;4)-1)-(SZÖVEG.KERES("/";G2)));".")

    Nem szép, de elvileg működik :) És ebből dátumot is tud csinálni a dátumérték - más kérdés, hogy nem tudom használni.

    Neked is köszönöm a segítséget, tök jó hogy ilyen türelmesek vagytok, ez nekem már nagyon magasröptű :B

    Bár a Power Query-t nem igazán ismerem, épphogy csak megpróbáltam használni egyetlen alkalommal, de az biztos, hogy amennyiben a G oszlopban látható riportált adat szóköznél történő szétválasztását választod akkor kettő külön oszlopot fogsz kapni. Az elsőben lesz a kívánt dátumod, míg a másodikban az időpont. Ha ez utóbbira nincs szükséged, akkor törölheted az oszlopot. Ha így töltöd be végül az adataidat, akkor nincs szükséged utána semmilyen képletre ahhoz, hogy dátumot kapj.

  • Peterhappy
    addikt

    Szia!
    Ez azért van, mert az adott mezőben nem dátumok vannak, hanem "számnak látszó" szövegek. A kimutatás forrás mezőjét kellene átalakítanod dátummá, ahogyan ebben a hozzászólásban írták (#42032 ny.jános), a Dátumérték függvénnyel. De talán még jobb lenne a DÁTUM függvény használata, a 42025-os hozzászólásodban levő Összefűz függvény paramétereire hivatkozással:
    =DÁTUM (Szöveg1;Szöveg3;Szöveg5)
    Vagyis a DÁTUM függvénybe az adott paraméterhez írt képletet tedd bele.
    Mert az Excelben dátum tekintetében sok esetben nem az van, mint amit látsz. Jelen esetben is, hiába fűzöd össze az értékeket "dátum formátumnak megfelelően", attól az még nem lesz dátum. :(
    De még többet látnánk, ha a forrásod egy részletét megmutatnád, amiben ezek az értékek szerepelnek.

    Üdv.

    Szia!

    Én nem a forrás mezőt, hanem az összefűzés eredményét próbáltam a szomszéd cellába átmásolni - ez utóbbit formázta is, míg a forrás mező átalakításánál #érték hibát jelenített meg..

    Így néz ki a riport - soha ilyen rettenetes riportot nem láttam még.


    Az összefűzés képlete:
    =ÖSSZEFŰZ(KÖZÉP(G2;SZÖVEG.KERES("/";G2;4)+1;4);". ";HA(HOSSZ(BAL(G2;SZÖVEG.KERES("/";G2)-1))=2;"";0);BAL(G2;SZÖVEG.KERES("/";G2)-1);". ";HA(HOSSZ(KÖZÉP(G2;SZÖVEG.KERES("/";G2)+1;(SZÖVEG.KERES("/";G2;4)-1)-(SZÖVEG.KERES("/";G2))))=2;"";0);KÖZÉP(G2;SZÖVEG.KERES("/";G2)+1;(SZÖVEG.KERES("/";G2;4)-1)-(SZÖVEG.KERES("/";G2)));".")

    Nem szép, de elvileg működik :) És ebből dátumot is tud csinálni a dátumérték - más kérdés, hogy nem tudom használni.

    Neked is köszönöm a segítséget, tök jó hogy ilyen türelmesek vagytok, ez nekem már nagyon magasröptű :B

  • Petium001
    csendes tag

    Szia!
    Az oszlop utolsó nem üres cellája után beírod a képletet:
    = Darabteli($D$2:$D$400;"igen")
    Itt a D oszlop 2-400 cellájában vannak az értékek.
    Egy buktatója van: Ha az igen nem szöveg, hanem logikai érték - pl. összehasonlítás utján kapod - akkor az IGEN() függvényre kell keresni, "igen", helyett IGEN() kell a második paraméterhez.
    Használd a függvényvarázslót légy szíves, könnyebben megérted.
    Üdv.

    Köszi,rákerestem, és elméletileg készen vagyok, köszönöm.

  • bozsozso
    őstag

    Szia!
    "úgy egészíteni, hogy a gyümölcsökhöz tartozó számokat az alján összesítse, hogy hány db"
    Úgy értettem, hogy össze kellene adni a számokat (összesítse). Ha a tételszámra vagy kíváncsi, akkor Darab2 függvény a második sortól indulva.
    Miután befejezted a Powerqueryben a munkát, visszaadod a táblát és a vezérlést az Excelbe. Ott pedig minden Excel függvény él természetesen.
    Üdv.

    Ez így rendben, csak gondoltam hátha a query-t ki lehet ilyennel egészíteni.

  • Fferi50
    Topikgazda

    Szia,

    Nem értem. Nekem nincs ilyen gombom...

    Akár jobb egérrel a mezőre kattintva, akár a kimutatásoknál a sorra, jobb egérrel, akár a fejlécen az elemzés alatt - sehogy. Próbáltam rövid dátum formátumnál is - sem így, sem úgy.

    Elnézést, ha nagyon láma vagyok... :B

    Szia!
    Ez azért van, mert az adott mezőben nem dátumok vannak, hanem "számnak látszó" szövegek. A kimutatás forrás mezőjét kellene átalakítanod dátummá, ahogyan ebben a hozzászólásban írták (#42032 ny.jános), a Dátumérték függvénnyel. De talán még jobb lenne a DÁTUM függvény használata, a 42025-os hozzászólásodban levő Összefűz függvény paramétereire hivatkozással:
    =DÁTUM (Szöveg1;Szöveg3;Szöveg5)
    Vagyis a DÁTUM függvénybe az adott paraméterhez írt képletet tedd bele.
    Mert az Excelben dátum tekintetében sok esetben nem az van, mint amit látsz. Jelen esetben is, hiába fűzöd össze az értékeket "dátum formátumnak megfelelően", attól az még nem lesz dátum. :(
    De még többet látnánk, ha a forrásod egy részletét megmutatnád, amiben ezek az értékek szerepelnek.

    Üdv.

  • Peterhappy
    addikt

    Szia!
    Ha már valóban dátum lett a pivot forrása, akkor a pivotban a mezőt meg tudod formázni. Ráállsz a mezőfejlécre, majd jobb egérgomb, mezőbeállítások - alul balra megtalálod a számformátum gombot. Itt be tudod állítani a neked megfelelő dátumformátumot, függetlenül az alapadatok formátumától.

    Üdv.

    Szia,

    Nem értem. Nekem nincs ilyen gombom...

    Akár jobb egérrel a mezőre kattintva, akár a kimutatásoknál a sorra, jobb egérrel, akár a fejlécen az elemzés alatt - sehogy. Próbáltam rövid dátum formátumnál is - sem így, sem úgy.

    Elnézést, ha nagyon láma vagyok... :B

  • Fferi50
    Topikgazda

    Köszi, sosem hallottam róla, azt hogyan kell?

    Szia!
    Az oszlop utolsó nem üres cellája után beírod a képletet:
    = Darabteli($D$2:$D$400;"igen")
    Itt a D oszlop 2-400 cellájában vannak az értékek.
    Egy buktatója van: Ha az igen nem szöveg, hanem logikai érték - pl. összehasonlítás utján kapod - akkor az IGEN() függvényre kell keresni, "igen", helyett IGEN() kell a második paraméterhez.
    Használd a függvényvarázslót légy szíves, könnyebben megérted.
    Üdv.

  • Fferi50
    Topikgazda

    Szum nem jó mert a számokat összeadja. A power query-ben is van szum?

    Szia!
    "úgy egészíteni, hogy a gyümölcsökhöz tartozó számokat az alján összesítse, hogy hány db"
    Úgy értettem, hogy össze kellene adni a számokat (összesítse). Ha a tételszámra vagy kíváncsi, akkor Darab2 függvény a második sortól indulva.
    Miután befejezted a Powerqueryben a munkát, visszaadod a táblát és a vezérlést az Excelbe. Ott pedig minden Excel függvény él természetesen.
    Üdv.

  • bozsozso
    őstag

    Szia!
    Szerintem transzponálás után egy sima SZUM függvény a legutolsó - még értéket tartalmazó - sor után elegendő.
    Üdv.

    Szum nem jó mert a számokat összeadja. A power query-ben is van szum?

  • Fferi50
    Topikgazda

    Sziasztok,

    Kaptam régebben egy ilyen power query-s segítséget. Ezt ki lehetne úgy egészíteni, hogy a gyümölcsökhöz tartozó számokat az alján összesítse, hogy hány db? Arra lenne ötletem, hogy miután az oszlopot szétválasztottam utána kellene még egy oszlopot hozzáadni és abba mehetne a számolás. Azt tudom, hogy excelben pl darabteli függvénnyel meg tudom számoltatni, de itt nem tudom milyen módon, függvénnyel lehetne összegezni. Utána mehetne a transzponálás. Mindegy, de lehetne a transzponálás után is a számolás csak nem tudom sort lehet-e hozzáadni.

    Szia!
    Szerintem transzponálás után egy sima SZUM függvény a legutolsó - még értéket tartalmazó - sor után elegendő.
    Üdv.

  • bozsozso
    őstag

    Sziasztok,

    Kaptam régebben egy ilyen power query-s segítséget. Ezt ki lehetne úgy egészíteni, hogy a gyümölcsökhöz tartozó számokat az alján összesítse, hogy hány db? Arra lenne ötletem, hogy miután az oszlopot szétválasztottam utána kellene még egy oszlopot hozzáadni és abba mehetne a számolás. Azt tudom, hogy excelben pl darabteli függvénnyel meg tudom számoltatni, de itt nem tudom milyen módon, függvénnyel lehetne összegezni. Utána mehetne a transzponálás. Mindegy, de lehetne a transzponálás után is a számolás csak nem tudom sort lehet-e hozzáadni.

  • Fferi50
    Topikgazda

    Köszi még egyszer, de az istennek sem sikerül. Egyrészt nem tudom mi az a kódlap, másrészt hiába rögzítem a nagyítást, következő megnyitáskor már nem jelenik meg és nem tudom futtatni. Office 365-öt használok Mac-en ha ez számít...

    Szia!
    Az Excel munkalap nézetből az Alt+F11 gomb visz át a VBA (makrós) ablakba.
    Az ablakban normál esetben van egy Projekt rész. Itt láthatod a munkalapjaid és hozzá a Thisworkbook - ot. Arra ráállsz - jobb egérgomb -View Code
    Megjelenik a jobb oldalon a kódlap. Oda másold be.
    Sajnos sem 365 sem Mac nincs nekem, így nem tudom kipróbálni.

    Üdv.

  • TigerCat
    nagyúr

    Szia!
    Nem mindegy, hova másolod.
    A Thisworkbook kódlapját nyisd meg és oda másold be.
    Ez egy eseménykezelő makró, ami akkor fut le, amikor a munkafüzetet megnyitják.

    Üdv.

    Köszi még egyszer, de az istennek sem sikerül. Egyrészt nem tudom mi az a kódlap, másrészt hiába rögzítem a nagyítást, következő megnyitáskor már nem jelenik meg és nem tudom futtatni. Office 365-öt használok Mac-en ha ez számít...

  • Fferi50
    Topikgazda

    Sziasztok!

    Van egy táblázatom, amiben az egyik oszlopban "igen" és "nem" szerepel, hosszú sorokban.
    A legaljára hogyan tudom összegezni az "igen"-ek számát?

    Köszi

    Szia!
    Használd a Darabteli függvényt.

    Üdv.

  • Petium001
    csendes tag

    Sziasztok!

    Van egy táblázatom, amiben az egyik oszlopban "igen" és "nem" szerepel, hosszú sorokban.
    A legaljára hogyan tudom összegezni az "igen"-ek számát?

    Köszi

  • Fferi50
    Topikgazda

    Csodálatosan működik!!!

    Nagyon szépen köszönöm!

    Esetleg még annyit meg tudnál tenni, hogy készítesz ugyan ilyen működéssel egy olyan verziót amely 4 változós? Tehát pl. az M, O, Q és S oszlopokból veszi a számítandó értékeket? Tehát csak 1 oszloppal bővíteni?

    Üdv.
    Dávid

    Szia!
    Az alábbi makrókat együtt kell bemásolnod egy modulba. Igyekeztem általánossá tenni.
    Az alkotó elemeket az O oszloptól lehet beírnod. Az első oszlop 2. cellája az alapár.
    A többi oszlop tartalmazza a megnevezést és az árakat párban. A makró a P2 cellából indul ki (de ez nem azt jelenti, hogy ide kell az alapárat írnod), ez legyen mindenképpen a kiindulási területen. A fejléceket nem másolja. Az utolsó oszlopba kerül az összár.
    Most lehet 2-3-4 sőt akár 5 összetevője is az összárnak. Persze vedd figyelembe, hogy minél több a változat, annál több lesz a variáció és nő a futási idő is. Ha már unod, akkor a Ctrl+ Break megszakítja a futást, erre két helyen figyel a makró - ott ahol DoEvents van.
    A varialhat makrót kell elindítanod, a másikat majd az meghívja, ha kell neki. Íme:
    Sub varialhat()
    Dim u As Integer, alap As Double
    Dim x As Long, y As Long, kepl As String
    Dim arazas As Range, oszl As Range
    Dim oszlopok As New Collection
    Dim varia As Long
    Dim oszlsz As Integer
    Dim valami(), szoroz As Long
    Set arazas = Range("P2").CurrentRegion
    alap = arazas.Cells(2, 1).Value: kepl = "=A2"
    varia = 1
    For x = 2 To arazas.Columns.Count
      With arazas.Columns(x)
        oszlopok.Add Range(.Cells(2, 1), .Cells(2, 1).End(xlDown)), Str(x - 1)
        If x Mod 2 = 0 Then varia = varia * oszlopok(x - 1).Cells.Count: kepl = kepl & "+" & Cells(2, x + 1).Address(rowabsolute:=False)
      End With
      DoEvents
    Next
    oszlsz = oszlopok.Count
    Application.ScreenUpdating = False
    If Range("A2") <> "" Then Range(Range("A2"), Cells(Range("A2").End(xlDown).Row, Range("A2").End(xlToRight).Column)).ClearContents
    u = 2
    Range(Cells(u, 1), Cells(u + varia - 1, 1)).Value = alap
    y = 2
    ReDim Preserve valami(1 To varia, 1 To oszlsz)
    szoroz = 1
    For x = oszlsz To 1 Step -1
        sokszoroz oszlopok(x), x, szoroz, varia / oszlopok(x).Cells.Count / szoroz, valami
        'oszl.Copy Destination:=Cells(u, y)
        'Range(Cells(u, y), Cells(u + oszl.Cells.Count - 1, y)).AutoFill Destination:=Range(Cells(u, y), Cells(varia + 1, y)), Type:=xlFillCopy
        If x Mod 2 = 1 Then szoroz = szoroz * oszlopok(x).Cells.Count
    Next
    y = 2 + oszlsz
    Range(Range("B2"), Cells(UBound(valami, 1) + 1, y - 1)).Value = valami
    Range(Cells(u, y), Cells(u + varia - 1, y)).Formula = kepl
    Range(Cells(u, y), Cells(u + varia - 1, y)).Value = Range(Cells(u, y), Cells(u + varia - 1, y)).Value
    Application.ScreenUpdating = True
    Range("A1").Select
    MsgBox "Készen vagyok!"
    End Sub
    Sub sokszoroz(ByRef mit, hova, hanyszor, ciklus, ByRef valami())
    Dim x As Long, cl As Range, w As Integer, z As Long
    x = 1
    For z = 1 To ciklus
       For Each cl In mit.Cells
          For w = 1 To hanyszor
             valami(x, hova) = cl.Value
             x = x + 1
          Next
       Next
       DoEvents
    Next
    End Sub

    Ha bármi probléma adódik, csak írj.
    Üdv.

  • Fferi50
    Topikgazda

    Szuper, bemásoltam egy új makróba, de nem történik semmi. Még sosem csináltam ilyet, gondolom nem ennyire egyszerű... :D

    Szia!
    Nem mindegy, hova másolod.
    A Thisworkbook kódlapját nyisd meg és oda másold be.
    Ez egy eseménykezelő makró, ami akkor fut le, amikor a munkafüzetet megnyitják.

    Üdv.

  • TigerCat
    nagyúr

    Private Sub Workbook_Open()
    #If Mac Then
    ActiveWindow.Zoom = 150
    #Else
    ActiveWindow.Zoom = 100
    #End If
    End Sub

    Szuper, bemásoltam egy új makróba, de nem történik semmi. Még sosem csináltam ilyet, gondolom nem ennyire egyszerű... :D

  • sztanozs
    veterán

    Hmmm, köszi. Ennek hogy fussak neki?

    Private Sub Workbook_Open()
    #If Mac Then
    ActiveWindow.Zoom = 150
    #Else
    ActiveWindow.Zoom = 100
    #End If
    End Sub

  • sztanozs
    veterán

    Sziasztok!
    A 100%-os nagyítás értékét lehet módosítani valahogy? Mac-en nagyon apró, így ha elmentem 125%-on, az túl nagy Windows alatt és fordítva. Szóval jó lenne valamilyen megoldást találni az alapértelmezett értékre. Van ilyen lehetőség szerintetek?
    Köszi!

    Ha platform szinten akarsz, akkor csak makróval

  • #73966957
    törölt tag

    Szia!
    Bocs, a 100-ast valóban elnéztem.
    A makrót megváltoztattam, annyi a megkötés, hogy 3 komponensnek kell lennie és az M-R oszlopokban legyenek az adatok, ahogyan a képen mutattam: név, mellette az ár. Lehetnek különböző hosszúságúak.
    Az alapár az L2 cellában legyen.
    A makró többször is futtatható, az előző futás eredményét törli.
    Sub varial()
    Dim aras(), u As Integer, usor1 As Integer, usor2 As Integer, usor3 As Integer, alap As Double
    Dim x As Byte, y As Byte, z As Byte
    Application.ScreenUpdating = False
    u = 2
    usor1 = Range("M2").End(xlDown).Row
    usor2 = Range("O2").End(xlDown).Row - 1
    usor3 = Range("Q2").End(xlDown).Row - 1
    aras = Range("M2:R" & usor1).Value
    If Range("A2") <> "" Then Range(Range("A2"), Range("A2").End(xlToRight).End(xlDown)).ClearContents
    alap = Range("L2").Value
    For x = 1 To usor1 - 1
        For y = 1 To usor2
            For z = 1 To usor3
                Cells(u, 1).Value = alap: Cells(u, 2).Value = aras(x, 1): Cells(u, 3).Value = aras(x, 2): Cells(u, 4).Value = aras(y, 3): Cells(u, 5).Value = aras(y, 4): Cells(u, 6).Value = aras(z, 5): Cells(u, 7).Value = aras(z, 6)
                Cells(u, 8).Value = alap + aras(x, 2) + aras(y, 4) + aras(z, 6)
                u = u + 1
            Next
        Next
        DoEvents
    Next
    Application.ScreenUpdating = True
    MsgBox "Készen vagyok!"
    End Sub

    Üdv.

    Csodálatosan működik!!!

    Nagyon szépen köszönöm!

    Esetleg még annyit meg tudnál tenni, hogy készítesz ugyan ilyen működéssel egy olyan verziót amely 4 változós? Tehát pl. az M, O, Q és S oszlopokból veszi a számítandó értékeket? Tehát csak 1 oszloppal bővíteni?

    Üdv.
    Dávid

  • TigerCat
    nagyúr

    Sziasztok!
    A 100%-os nagyítás értékét lehet módosítani valahogy? Mac-en nagyon apró, így ha elmentem 125%-on, az túl nagy Windows alatt és fordítva. Szóval jó lenne valamilyen megoldást találni az alapértelmezett értékre. Van ilyen lehetőség szerintetek?
    Köszi!

    Erre bármilyen ötlet esetleg?

  • Fferi50
    Topikgazda

    Próbálkoztam most kicsit vele. Érdekes ez, mert működött és így tudtam pl. a pivotban hónapos szűrést beállítani neki, ugyanakkor a dátum formátuma szétesett, pl. 1.szept jelent meg "2019. 09. 01." helyett (amit az összefűzésekkel én adtam meg).

    Finomítanom még így is kellett a táblázaton, plusz nullákat bedöfködnöm, ha egyszámjegyű a hónap vagy a nap, szóval nem mondanám szépnek a képletet, de elméletileg most teszi a dolgát :) Nekem pedig a napi kimutatás elégséges - egy hónapos szűrővel szebb lenne ugyan, de így is gyakorlatilag tökéletes :)

    Nagyon szépen köszönöm a segítségedet!

    Szia!
    Ha már valóban dátum lett a pivot forrása, akkor a pivotban a mezőt meg tudod formázni. Ráállsz a mezőfejlécre, majd jobb egérgomb, mezőbeállítások - alul balra megtalálod a számformátum gombot. Itt be tudod állítani a neked megfelelő dátumformátumot, függetlenül az alapadatok formátumától.

    Üdv.

  • Peterhappy
    addikt

    Sajnos tartottam tőle, hogy így lesz. Én feltételeztem ugyanis, hogy a riportolt adataid dátum formátumúak, de ezek szerint szövegként kezeltek. Ez esetben viszont a te megoldásodat is ki kellene még egészíteni a DÁTUMÉRTÉK függvénnyel, hogy az excel is dátumként ismerje azt.

    Egy másik ötlet, hogy az adataidat Power Queryvel próbálod meg beolvasni, és ott formázod az adott oszlopot a megfelelő formátumra. Ha ez sikerül, akkor működnie kellene a képletemnek. Több meló lesz megcsinálni, de ha rendszeresen olvasol be adatot, akkor valószínűleg megéri. ;)

    Próbálkoztam most kicsit vele. Érdekes ez, mert működött és így tudtam pl. a pivotban hónapos szűrést beállítani neki, ugyanakkor a dátum formátuma szétesett, pl. 1.szept jelent meg "2019. 09. 01." helyett (amit az összefűzésekkel én adtam meg).

    Finomítanom még így is kellett a táblázaton, plusz nullákat bedöfködnöm, ha egyszámjegyű a hónap vagy a nap, szóval nem mondanám szépnek a képletet, de elméletileg most teszi a dolgát :) Nekem pedig a napi kimutatás elégséges - egy hónapos szűrővel szebb lenne ugyan, de így is gyakorlatilag tökéletes :)

    Nagyon szépen köszönöm a segítségedet!

  • Peterhappy
    addikt

    Sajnos tartottam tőle, hogy így lesz. Én feltételeztem ugyanis, hogy a riportolt adataid dátum formátumúak, de ezek szerint szövegként kezeltek. Ez esetben viszont a te megoldásodat is ki kellene még egészíteni a DÁTUMÉRTÉK függvénnyel, hogy az excel is dátumként ismerje azt.

    Egy másik ötlet, hogy az adataidat Power Queryvel próbálod meg beolvasni, és ott formázod az adott oszlopot a megfelelő formátumra. Ha ez sikerül, akkor működnie kellene a képletemnek. Több meló lesz megcsinálni, de ha rendszeresen olvasol be adatot, akkor valószínűleg megéri. ;)

    Koszonom szepen, ez jo otletnek tunik, holnap ranezek :) :R

  • Fferi50
    Topikgazda

    Hali!

    Kipróbáltam a dolgot. Elsőre azt mondanám, hogy működik, azonban mégsem. Az első hiba, hogy hiába van nekem megadva egy alapár az L2 cellában, mégis a te 100-addal számol alapárat. Továbbá olyan problémám is van, hogy a konkrét opciós lista az 26x3x3, tehát összesen 234 árnak kellene kijönnie. Azonban a makrót lefuttatva 17.517 db jön ki.

    Nagyon szépen köszönöm az eddigi munkádat is, ha pedig remélhetőleg nem túl nagy munkával még ki tudnád javítani, abban az esetben nagyon hálás lennék! :R

    Üdv.
    Dávid

    Szia!
    Bocs, a 100-ast valóban elnéztem.
    A makrót megváltoztattam, annyi a megkötés, hogy 3 komponensnek kell lennie és az M-R oszlopokban legyenek az adatok, ahogyan a képen mutattam: név, mellette az ár. Lehetnek különböző hosszúságúak.
    Az alapár az L2 cellában legyen.
    A makró többször is futtatható, az előző futás eredményét törli.
    Sub varial()
    Dim aras(), u As Integer, usor1 As Integer, usor2 As Integer, usor3 As Integer, alap As Double
    Dim x As Byte, y As Byte, z As Byte
    Application.ScreenUpdating = False
    u = 2
    usor1 = Range("M2").End(xlDown).Row
    usor2 = Range("O2").End(xlDown).Row - 1
    usor3 = Range("Q2").End(xlDown).Row - 1
    aras = Range("M2:R" & usor1).Value
    If Range("A2") <> "" Then Range(Range("A2"), Range("A2").End(xlToRight).End(xlDown)).ClearContents
    alap = Range("L2").Value
    For x = 1 To usor1 - 1
        For y = 1 To usor2
            For z = 1 To usor3
                Cells(u, 1).Value = alap: Cells(u, 2).Value = aras(x, 1): Cells(u, 3).Value = aras(x, 2): Cells(u, 4).Value = aras(y, 3): Cells(u, 5).Value = aras(y, 4): Cells(u, 6).Value = aras(z, 5): Cells(u, 7).Value = aras(z, 6)
                Cells(u, 8).Value = alap + aras(x, 2) + aras(y, 4) + aras(z, 6)
                u = u + 1
            Next
        Next
        DoEvents
    Next
    Application.ScreenUpdating = True
    MsgBox "Készen vagyok!"
    End Sub

    Üdv.

  • #73966957
    törölt tag

    Szia!
    Egy makróval megoldható a feladat. Az árlistát az alábbiak szerint helyezd el:

    Az L2 cella tartalmazza az alapárat, az M, O, Q oszlopok a tartozékfajták megnevezését, a mellettük levő oszlop pedig az árakat.
    Az árlista generálása az A2 cellától kezdődik és tartalmazza az adott tartozék nevét és árát valamint a végösszeget. A fejléceket nem írja ki a makró, amely az alábbi:
    Sub varial()
    Dim aras(), u As Integer, usor As Integer
    Dim x As Byte, y As Byte, z As Byte
    u = 2
    usor = Range("M2").End(xlDown).Row
    aras = Range("M2:R" & usor).Value
    For x = 1 To UBound(aras, 1)
        For y = 1 To UBound(aras, 1)
            For z = 1 To UBound(aras, 1)
                Cells(u, 1).Value = 100: Cells(u, 2).Value = aras(x, 1): Cells(u, 3).Value = aras(x, 2): Cells(u, 4).Value = aras(y, 3): Cells(u, 5).Value = aras(y, 4): Cells(u, 6).Value = aras(z, 5): Cells(u, 7).Value = aras(z, 6)
                Cells(u, 8).Value = 100 + aras(x, 2) + aras(y, 4) + aras(z, 6)
                u = u + 1
            Next
        Next
    Next
    End Sub
    Ezt a makrót egy modullapra helyezd el. (eljárás az összefoglalóban).
    3 fajta összetevőt használhatsz, de ezen belül nem csak 10-10 lehetőséget, azokat tetszés szerint növelheted. Fontos, hogy azokat az M :  Roszlopokba írd.

    Üdv.

    Hali!

    Kipróbáltam a dolgot. Elsőre azt mondanám, hogy működik, azonban mégsem. Az első hiba, hogy hiába van nekem megadva egy alapár az L2 cellában, mégis a te 100-addal számol alapárat. Továbbá olyan problémám is van, hogy a konkrét opciós lista az 26x3x3, tehát összesen 234 árnak kellene kijönnie. Azonban a makrót lefuttatva 17.517 db jön ki.

    Nagyon szépen köszönöm az eddigi munkádat is, ha pedig remélhetőleg nem túl nagy munkával még ki tudnád javítani, abban az esetben nagyon hálás lennék! :R

    Üdv.
    Dávid

  • Szia János,

    Egyik módszer sem működött.
    Próbáltam átállítani a G oszlop formátumát dátumra - de úgy sem.

    Azért köszönöm :)

    Sajnos tartottam tőle, hogy így lesz. Én feltételeztem ugyanis, hogy a riportolt adataid dátum formátumúak, de ezek szerint szövegként kezeltek. Ez esetben viszont a te megoldásodat is ki kellene még egészíteni a DÁTUMÉRTÉK függvénnyel, hogy az excel is dátumként ismerje azt.

    Egy másik ötlet, hogy az adataidat Power Queryvel próbálod meg beolvasni, és ott formázod az adott oszlopot a megfelelő formátumra. Ha ez sikerül, akkor működnie kellene a képletemnek. Több meló lesz megcsinálni, de ha rendszeresen olvasol be adatot, akkor valószínűleg megéri. ;)

  • Fferi50
    Topikgazda

    Sziasztok!

    Lenne egy olyan problémám amit talán excel-lel meg lehet oldani és eszméletlenül megkönnyítené az életem. Ezért fordulok hozzátok, hátha valaki aki benne van már oldott meg hasonló problémát.

    Tehát adott mondjuk a példa kedvéért egy webshop. Egy webshop ami kerékpárokat árul. Van egy adott kerékpár, legyen a neve "26"-os felnőtt kerékpár". ennél a terméknél van 4db konfigurációs lehetőség, amely változtatja az árat is. Pl.: Lehet kérni a vázat 10 féle színben, minden színnek más az ára. Lehet kérni 10 fajta gumiabronccsal, megint csak mindnek különböző az ára, valamint mondjuk 10 fajta áttétellel melyeknek megint csak különböző az áruk. Tehát összesen 10*10*10 fajta ár lehet, azaz összesen 1.000 féle ára lehet ennek a kerékpárnak. A probléma viszont az, hogy a webshopban nem lehet megadni, hogy az egyes változatoknak mennyi a plusz ára a sztenderd árhoz képest, hanem minden egyes variációhoz külön kell nekünk manuálisan megadni az árat. Ez a probléma. Hogyan tudnék excelben létrehozni egy olyan munkafüzetet, ahol ha megadom, hogy pl. 100.000 Ft az alapára a kerékpárnak, majd pedig megadom a 3*10db opciót árakkal, akkor az excel kiszámolja nekem az összes létező variációt, tehát mind a 1.000db-ot és mondjuk egymás alá megadja nekem egy táblázatban. Ezt követően az árakat már egy egyszerű skripttel be tudom pár gombnyomással vinni az oldalra, ezzel nincs baj. A kiszámításánál akadtam el.

    Előre is köszönöm mindenkinek aki egyáltalán elolvassa ezt a feladványt, ha pedig még segíteni is tudtuk akkor le a kalappal! :R

    Üdv.
    Dávid

    Szia!
    Egy makróval megoldható a feladat. Az árlistát az alábbiak szerint helyezd el:

    Az L2 cella tartalmazza az alapárat, az M, O, Q oszlopok a tartozékfajták megnevezését, a mellettük levő oszlop pedig az árakat.
    Az árlista generálása az A2 cellától kezdődik és tartalmazza az adott tartozék nevét és árát valamint a végösszeget. A fejléceket nem írja ki a makró, amely az alábbi:
    Sub varial()
    Dim aras(), u As Integer, usor As Integer
    Dim x As Byte, y As Byte, z As Byte
    u = 2
    usor = Range("M2").End(xlDown).Row
    aras = Range("M2:R" & usor).Value
    For x = 1 To UBound(aras, 1)
        For y = 1 To UBound(aras, 1)
            For z = 1 To UBound(aras, 1)
                Cells(u, 1).Value = 100: Cells(u, 2).Value = aras(x, 1): Cells(u, 3).Value = aras(x, 2): Cells(u, 4).Value = aras(y, 3): Cells(u, 5).Value = aras(y, 4): Cells(u, 6).Value = aras(z, 5): Cells(u, 7).Value = aras(z, 6)
                Cells(u, 8).Value = 100 + aras(x, 2) + aras(y, 4) + aras(z, 6)
                u = u + 1
            Next
        Next
    Next
    End Sub
    Ezt a makrót egy modullapra helyezd el. (eljárás az összefoglalóban).
    3 fajta összetevőt használhatsz, de ezen belül nem csak 10-10 lehetőséget, azokat tetszés szerint növelheted. Fontos, hogy azokat az M :  Roszlopokba írd.

    Üdv.

  • lappy
    őstag

    Sziasztok!

    Lenne egy olyan problémám amit talán excel-lel meg lehet oldani és eszméletlenül megkönnyítené az életem. Ezért fordulok hozzátok, hátha valaki aki benne van már oldott meg hasonló problémát.

    Tehát adott mondjuk a példa kedvéért egy webshop. Egy webshop ami kerékpárokat árul. Van egy adott kerékpár, legyen a neve "26"-os felnőtt kerékpár". ennél a terméknél van 4db konfigurációs lehetőség, amely változtatja az árat is. Pl.: Lehet kérni a vázat 10 féle színben, minden színnek más az ára. Lehet kérni 10 fajta gumiabronccsal, megint csak mindnek különböző az ára, valamint mondjuk 10 fajta áttétellel melyeknek megint csak különböző az áruk. Tehát összesen 10*10*10 fajta ár lehet, azaz összesen 1.000 féle ára lehet ennek a kerékpárnak. A probléma viszont az, hogy a webshopban nem lehet megadni, hogy az egyes változatoknak mennyi a plusz ára a sztenderd árhoz képest, hanem minden egyes variációhoz külön kell nekünk manuálisan megadni az árat. Ez a probléma. Hogyan tudnék excelben létrehozni egy olyan munkafüzetet, ahol ha megadom, hogy pl. 100.000 Ft az alapára a kerékpárnak, majd pedig megadom a 3*10db opciót árakkal, akkor az excel kiszámolja nekem az összes létező variációt, tehát mind a 1.000db-ot és mondjuk egymás alá megadja nekem egy táblázatban. Ezt követően az árakat már egy egyszerű skripttel be tudom pár gombnyomással vinni az oldalra, ezzel nincs baj. A kiszámításánál akadtam el.

    Előre is köszönöm mindenkinek aki egyáltalán elolvassa ezt a feladványt, ha pedig még segíteni is tudtuk akkor le a kalappal! :R

    Üdv.
    Dávid

    Legördülő lista minden plusz dologhoz és annyi sorban ahány variációban akarod
    De ha szeretnéd az is megoldható bár nem egyszerűen hogy az összes variációt összeallitja majd egy megadott adatbázisból árazás is megtortenik.

  • Peterhappy
    addikt

    Használhatod a
    =DÁTUM(ÉV(G2);HÓNAP(G2);NAP(G2))
    vagy még egyszerűbben a
    =KEREK.LE(G2;0)
    képleteket is.

    Szia János,

    Egyik módszer sem működött.
    Próbáltam átállítani a G oszlop formátumát dátumra - de úgy sem.

    Azért köszönöm :)

  • #73966957
    törölt tag

    Sziasztok!

    Lenne egy olyan problémám amit talán excel-lel meg lehet oldani és eszméletlenül megkönnyítené az életem. Ezért fordulok hozzátok, hátha valaki aki benne van már oldott meg hasonló problémát.

    Tehát adott mondjuk a példa kedvéért egy webshop. Egy webshop ami kerékpárokat árul. Van egy adott kerékpár, legyen a neve "26"-os felnőtt kerékpár". ennél a terméknél van 4db konfigurációs lehetőség, amely változtatja az árat is. Pl.: Lehet kérni a vázat 10 féle színben, minden színnek más az ára. Lehet kérni 10 fajta gumiabronccsal, megint csak mindnek különböző az ára, valamint mondjuk 10 fajta áttétellel melyeknek megint csak különböző az áruk. Tehát összesen 10*10*10 fajta ár lehet, azaz összesen 1.000 féle ára lehet ennek a kerékpárnak. A probléma viszont az, hogy a webshopban nem lehet megadni, hogy az egyes változatoknak mennyi a plusz ára a sztenderd árhoz képest, hanem minden egyes variációhoz külön kell nekünk manuálisan megadni az árat. Ez a probléma. Hogyan tudnék excelben létrehozni egy olyan munkafüzetet, ahol ha megadom, hogy pl. 100.000 Ft az alapára a kerékpárnak, majd pedig megadom a 3*10db opciót árakkal, akkor az excel kiszámolja nekem az összes létező variációt, tehát mind a 1.000db-ot és mondjuk egymás alá megadja nekem egy táblázatban. Ezt követően az árakat már egy egyszerű skripttel be tudom pár gombnyomással vinni az oldalra, ezzel nincs baj. A kiszámításánál akadtam el.

    Előre is köszönöm mindenkinek aki egyáltalán elolvassa ezt a feladványt, ha pedig még segíteni is tudtuk akkor le a kalappal! :R

    Üdv.
    Dávid

  • Peterhappy
    addikt

    Használhatod a
    =DÁTUM(ÉV(G2);HÓNAP(G2);NAP(G2))
    vagy még egyszerűbben a
    =KEREK.LE(G2;0)
    képleteket is.

    Koszonom, holnap kiprobalom! Lenyegesen szebb es igenyesebb lenne, az biztos...

  • Tárgytalan, sikerült!
    Bár biztosan létezik szebb megoldás, de amire kell, arra tökéletes lesz. :K

    Használhatod a
    =DÁTUM(ÉV(G2);HÓNAP(G2);NAP(G2))
    vagy még egyszerűbben a
    =KEREK.LE(G2;0)
    képleteket is.

  • Peterhappy
    addikt

    Sziasztok,

    Feladom :)

    Olyan riportot tudok generálni, amelyben a következő módon szerepelnek az időpontok:

    10/25/2019 2:26:01 PM
    10/7/2019 13:27:51
    10/4/2019 18:34:47
    10/24/2019 3:44:17 PM

    Igen, akad amikor PM-mel, akad amikor anélkül, amerikai formátum, esetenként egyjegyű nappal és hónappal, ahogy kell. :C

    Hogy a búbánatba lehetne ebből képlettel használható dátumot kreálni?
    Az időpontra nincs is feltétlen szükségem, elegendő az év-hónap-nap - csak pivotálható legyen, dátum szerint rendezhető...

    Előre is köszönöm a segítséget!

    Tárgytalan, sikerült!
    Bár biztosan létezik szebb megoldás, de amire kell, arra tökéletes lesz. :K

  • Peterhappy
    addikt

    Sziasztok,

    Feladom :)

    Olyan riportot tudok generálni, amelyben a következő módon szerepelnek az időpontok:

    10/25/2019 2:26:01 PM
    10/7/2019 13:27:51
    10/4/2019 18:34:47
    10/24/2019 3:44:17 PM

    Igen, akad amikor PM-mel, akad amikor anélkül, amerikai formátum, esetenként egyjegyű nappal és hónappal, ahogy kell. :C

    Hogy a búbánatba lehetne ebből képlettel használható dátumot kreálni?
    Az időpontra nincs is feltétlen szükségem, elegendő az év-hónap-nap - csak pivotálható legyen, dátum szerint rendezhető...

    Előre is köszönöm a segítséget!

  • BalanceR
    addikt

    Sziasztok,
    Egy kicsit összetettebb, kérdésem lenne a gurukhoz...
    Megoldható-e, hogy egy munkalap automatikusan frissítsen bizonyos adatokat egy publikus weblapról?
    A következőről lenne szó:
    árukereső.hu -s árakat kellene automatikusan levadásznia, és beletenni a táblába érékesítő szerint....
    Pl:
    Van egy táblám cikkszámokkal az első oszlopban, arra kellene megoldás, hogy mondjuk egy másolható képlet, vagy makró csinálja azt , hogy keresést indít az árukeresőn az első oszlopban található cikkszámra, (ez ugye meg egy jól paraméterezett [hiperhivatkozás]-al ) az első találati oldalt megnyitja, és az ott lévő adatokat bepakolja a cikkszám melletti oszlopokba.
    Pl:

    cikkszám | MediaMarkt | Tesco | ebolt |
    1254568 | 12.99FT | 11.99Ft | 13.25Ft |
    188568 | 26.99FT | 26.99Ft | 26.25Ft |


    Ilyesmire valakinek ötlete, vagy esetleg gyakorlati tapasztalata?

    Előre is köszi. :R

  • vmk
    aktív tag

    Sziasztok.

    Nem tudom, hogy jó helyen járok-e a problémámmal.
    Az egyik kolléganőmnél van olyan hiba, hogy munkalapok nyomtatásánál különböző felhasználónévvel küldi ki a program (vagy driver?) a dokumentumot.

    Tehát a nyomtató egy Konica Minolta C280. Be van állítva egy felhasználónév pl "kifli".
    A kolléganő Windows-os felhasználóneve mondjuk "zsömle".
    Azt vettem észre, hogy a dokumentumon belül bizonyos munkalapoknál a "kifli"-vel megy ki a nyomtatás (és sikeres is), bizonyosaknál pedig a "zsömle"-vel és ezt visszadobja a nyomtató.
    Office 2016 Otthoni és vállalati verziójú a programcsomag.

    Találkozott már valaki ilyesmivel? Mi lehet a gond?

  • TigerCat
    nagyúr

    Sziasztok!
    A 100%-os nagyítás értékét lehet módosítani valahogy? Mac-en nagyon apró, így ha elmentem 125%-on, az túl nagy Windows alatt és fordítva. Szóval jó lenne valamilyen megoldást találni az alapértelmezett értékre. Van ilyen lehetőség szerintetek?
    Köszi!

  • Fferi50
    Topikgazda

    Köszi ez be van pipálva, használom is, de a ctrl + L nekem nem működik, pedig magyar Excelt használok és sokszor nekem praktikus volt ez a kombináció. :)

    Szia!
    Nézd meg a vonatkozó helpet - billentyű parancsok címszó alatt.
    Az én helpem a Ctrl + D parancsot írja a legelső cella lefelé másolásához. (DE ez nálam nem műxik, hanem a Ctrl + L csinálja ezt.)
    2016-os verzió, magyar.
    Üdv.

  • bara17
    tag

    Szia!
    Magyar verzióban működik a Ctrl + l másolás.
    File - beállítások - speciális fülön a kitöltőjel használatának és az egérrel való húzás engedélyezésének kockáját bepipálva a cella jobb alsó sarkán levő pöttyöt megfogva a cella adatai másolhatók húzással.

    Üdv.

    Köszi ez be van pipálva, használom is, de a ctrl + L nekem nem működik, pedig magyar Excelt használok és sokszor nekem praktikus volt ez a kombináció. :)

  • Fferi50
    Topikgazda

    Az a baj, túl összetett a képlet.
    Egy bérkalkulátor táblázatról van szó.
    3 műszakos munkarend van, az alábbi adatokból számol a táblázat.
    - melyik műszak (műszakonként eltérő pótlék)
    - van e túlóra, ha igen mennyi. (Első 2 órára x% jár, minden további órára y%)
    - hétvége vagy sem (erre szintén külön pótlék van)
    Minden automatán van számolva
    Műszakszorzó beillesztése: (ez még meg oldható FKERES-sel, általad leírt módon)
    =HAHIBA(HAELSŐIGAZ(G4=1;1;G4=2;1,5;G4=3;1,5);)
    Túlóra díj kiszámítása:
    =HAHIBA(HAELSŐIGAZ(G4=1;HA(F4>2;2*$G$1*1,5+(F4-2)*$G$1*1,75;F4*$G$1*1,5);G4=2;HA(F4>2;2*$G$1*2+(F4-2)*$G$1*2,25;F4*$G$1*2);G4=3;HA(F4>2;2*$G$1*2+(F4-2)*$G$1*2,25;F4*$G$1*2));)
    és ugye itt bonyolódik a helyzet, mert ennek a képletnek figyelembe kell vennie minden kritériumot :(

    Szia!
    Ezt találtam ki, nézd meg, hogy működőképes-e nálatok:

    A táblázat első oszlopa tartalmazza a 2 órás határt - ezt még jobban lehet finomítani 2,00001 -re akár - a további 3 oszlop az egyes műszakokhoz tartozó műszakpótlékot.
    Persze itt még a 7vége nincs benne, de szerintem az is megoldható (pl ha hétvége, akkor a + 3 oszlop tartalmazza azt a pótlékot és a G oszlopban levő értékhez nem 1, hanem 4 a hozzáadás).
    (Nem mellesleg, így csak a szorzószámokat kell esetleg változtatni, nem kell átírni az összes képletet.)

    Üdv.

  • Fferi50
    Topikgazda

    Sziasztok!

    Lehet láma kérdés, de a billentyűparancsokat hol lehet átállítani az Excelben (Office 2016). Korábba verziókban a ctrl+L szépen lemásolta a felette lévő cellát, de a 2016-os verzióban már nem működik.

    Köszönöm.

    Szia!
    Magyar verzióban működik a Ctrl + l másolás.
    File - beállítások - speciális fülön a kitöltőjel használatának és az egérrel való húzás engedélyezésének kockáját bepipálva a cella jobb alsó sarkán levő pöttyöt megfogva a cella adatai másolhatók húzással.

    Üdv.

  • Sziasztok!

    Lehet láma kérdés, de a billentyűparancsokat hol lehet átállítani az Excelben (Office 2016). Korábba verziókban a ctrl+L szépen lemásolta a felette lévő cellát, de a 2016-os verzióban már nem működik.

    Köszönöm.

    A Ctrl+L billentyűparancs már a régebbi verziókban is a táblázat létrehozása párbeszédpanelt nyitotta meg. Amit írsz az egy makró lehetett. Billentyűparancs módosítása nem hiszem, hogy lehetséges.

    Makró helyett: ha van olyan parancs az excelben, ami az aktuális cella feletti cella tartalmát másolja (én nem tudok ilyenről), akkor azt a parancsot felveheted a gyorselérési eszköztárra. A gyorselérési eszköztárra felvett parancsok közül az első tíznek a gyorsbillentyű kombinációja: Alt+1, Alt+2 stb.

  • bara17
    tag

    Sziasztok!

    Lehet láma kérdés, de a billentyűparancsokat hol lehet átállítani az Excelben (Office 2016). Korábba verziókban a ctrl+L szépen lemásolta a felette lévő cellát, de a 2016-os verzióban már nem működik.

    Köszönöm.

  • bucihost
    senior tag

    Szia!

    Az FKERES függvény 4. paraméterét ha IGAZ-ra állítod, akkor alkalmas arra, hogy táblázatban keressen, ehhez emelkedő sorrendbe kell rendezni a táblázatot - és még szöveges keresésben is működik.
    Az előző hsz-ban levő példához a táblázat és a képlet:

    Ez biztosan működik minden verzióban, mert a függvény is régi már.

    Üdv.

    Az a baj, túl összetett a képlet.
    Egy bérkalkulátor táblázatról van szó.
    3 műszakos munkarend van, az alábbi adatokból számol a táblázat.
    - melyik műszak (műszakonként eltérő pótlék)
    - van e túlóra, ha igen mennyi. (Első 2 órára x% jár, minden további órára y%)
    - hétvége vagy sem (erre szintén külön pótlék van)
    Minden automatán van számolva
    Műszakszorzó beillesztése: (ez még meg oldható FKERES-sel, általad leírt módon)
    =HAHIBA(HAELSŐIGAZ(G4=1;1;G4=2;1,5;G4=3;1,5);)
    Túlóra díj kiszámítása:
    =HAHIBA(HAELSŐIGAZ(G4=1;HA(F4>2;2*$G$1*1,5+(F4-2)*$G$1*1,75;F4*$G$1*1,5);G4=2;HA(F4>2;2*$G$1*2+(F4-2)*$G$1*2,25;F4*$G$1*2);G4=3;HA(F4>2;2*$G$1*2+(F4-2)*$G$1*2,25;F4*$G$1*2));)
    és ugye itt bonyolódik a helyzet, mert ennek a képletnek figyelembe kell vennie minden kritériumot :(

  • Fferi50
    Topikgazda

    Köszi, akkor azt hiszem inkább frissítem a kliens gépen is 2016-ról. Túl hosszú így is a képlet, ha minden HA ra lenne átírva akkor még hosszabb lenne....

    Szia!

    Az FKERES függvény 4. paraméterét ha IGAZ-ra állítod, akkor alkalmas arra, hogy táblázatban keressen, ehhez emelkedő sorrendbe kell rendezni a táblázatot - és még szöveges keresésben is működik.
    Az előző hsz-ban levő példához a táblázat és a képlet:

    Ez biztosan működik minden verzióban, mert a függvény is régi már.

    Üdv.

  • bucihost
    senior tag

    Szia!
    Bizony, a 2016-os Excelben nincs ilyen függvény. Helyette szép beágyazott HA függvényeket kell összerakni, arra viszont vigyázni kell, hogy helyes sorrendben legyenek a feltételek megadva.
    Pl. =HA(A1>80;"A";HA(A1>70;"B";HA(A1>60;"C";"D")))

    Üdv.

    Köszi, akkor azt hiszem inkább frissítem a kliens gépen is 2016-ról. Túl hosszú így is a képlet, ha minden HA ra lenne átírva akkor még hosszabb lenne....

  • karlkani
    aktív tag

    Szia!

    Például így:
    Range("A1").Formula="=TEXT((TODAY()-WEEKDAY(TODAY(),3)),""h.n."") & ""-"" & TEXT((TODAY()-WEEKDAY(TODAY(),16)),""h.n."")"

    Üdv.

    & (#42008) Delila_1

    Köszönöm szépen! :R

  • Fferi50
    Topikgazda

    Nála ez a helyes képlet: =ÉS(SOR(A1)=$N$2;OSZLOP(A1)=$O$2)

    (#42002) Delila_1
    A B2 : K11 területre nem jó a képleted, mert ilyenkor az összes találatot kiszínezi, ezt akarja elkerülni.

    Szia!
    Hát igen, figyelmetlen voltam, nem néztem meg rendesen a szorzás helyét...
    Köszi, hogy kijavítottad.
    Üdv.

  • Fferi50
    Topikgazda

    Sziasztok!

    Adott egy O365 excelben megírt HAELSŐIGAZ képlet. Tökéletesen működik, viszont ma O2016 excelben megnyitom a munkafüzetet akkor nem működik a képlet, valamint HAELSŐIGAZ helyett _xlfn.IFS jelenik meg. Hogyan lehetne orvosolni a problémát? FX-ben rákerestem, de nem létezik ilyen függvény.... :F

    Szia!
    Bizony, a 2016-os Excelben nincs ilyen függvény. Helyette szép beágyazott HA függvényeket kell összerakni, arra viszont vigyázni kell, hogy helyes sorrendben legyenek a feltételek megadva.
    Pl. =HA(A1>80;"A";HA(A1>70;"B";HA(A1>60;"C";"D")))

    Üdv.

  • Delila_1
    veterán

    (#42005) 3DFan
    Nem az enyém, Fferi50 képlete, én csak a tábládhoz igazítottam.

    Ebédrendeléshez készítettem egy táblázatot. Van egy cellám, ami az aktuális hét, hétfő-péntek dátumát tartalmazza, jelenleg kézzel beírva (10.21-10.25). Készítettem hozzá egy képletet: =SZÖVEG((MA()-HÉT.NAPJA(MA();3));"h.n.") & "-" & SZÖVEG((MA()-HÉT.NAPJA(MA();16));"h.n.")
    Ezt hogyan kellene beírni makróba?

    Sub mm()
        Dim tol As Date, ig As Date
        tol = Date - Weekday(Date, 3)
        ig = tol + 4
        
        Debug.Print Format(tol, "mm.dd.") & "-" & Format(ig, "mm.dd.")
    End Sub

  • Fferi50
    Topikgazda

    (#42005) 3DFan
    Nem az enyém, Fferi50 képlete, én csak a tábládhoz igazítottam.

    Ebédrendeléshez készítettem egy táblázatot. Van egy cellám, ami az aktuális hét, hétfő-péntek dátumát tartalmazza, jelenleg kézzel beírva (10.21-10.25). Készítettem hozzá egy képletet: =SZÖVEG((MA()-HÉT.NAPJA(MA();3));"h.n.") & "-" & SZÖVEG((MA()-HÉT.NAPJA(MA();16));"h.n.")
    Ezt hogyan kellene beírni makróba?

    Szia!

    Például így:
    Range("A1").Formula="=TEXT((TODAY()-WEEKDAY(TODAY(),3)),""h.n."") & ""-"" & TEXT((TODAY()-WEEKDAY(TODAY(),16)),""h.n."")"

    Üdv.

  • karlkani
    aktív tag

    (#42005) 3DFan
    Nem az enyém, Fferi50 képlete, én csak a tábládhoz igazítottam.

    Ebédrendeléshez készítettem egy táblázatot. Van egy cellám, ami az aktuális hét, hétfő-péntek dátumát tartalmazza, jelenleg kézzel beírva (10.21-10.25). Készítettem hozzá egy képletet: =SZÖVEG((MA()-HÉT.NAPJA(MA();3));"h.n.") & "-" & SZÖVEG((MA()-HÉT.NAPJA(MA();16));"h.n.")
    Ezt hogyan kellene beírni makróba?

  • bucihost
    senior tag

    Sziasztok!

    Adott egy O365 excelben megírt HAELSŐIGAZ képlet. Tökéletesen működik, viszont ma O2016 excelben megnyitom a munkafüzetet akkor nem működik a képlet, valamint HAELSŐIGAZ helyett _xlfn.IFS jelenik meg. Hogyan lehetne orvosolni a problémát? FX-ben rákerestem, de nem létezik ilyen függvény.... :F

  • karlkani
    aktív tag

    Szia!
    Egyetlen cellába sem kell írnod semmit!
    Az általad bemutatott minta alapján a feltételes formázást az alábbiak szerint tudod megtenni:
    Kezdőlap - feltételes formázás - új szabály -
    Ezután a formázandó cellák kijelölése képlettel:

    Kiválasztod a formátumot, majd OK.
    A formázandó terület kiválasztásához:

    Kiválasztod a szabályt és beírod az érvényességi területet:

    Ha a képletben nem az A1 cella lenne, akkor a Szabály szerkesztése gombra kattintva átírod A1- a sor és oszlop függvény paraméterét.
    Majd OK vagy/és Alkalmaz.

    Üdv.

    Nála ez a helyes képlet: =ÉS(SOR(A1)=$N$2;OSZLOP(A1)=$O$2)

    (#42002) Delila_1
    A B2 : K11 területre nem jó a képleted, mert ilyenkor az összes találatot kiszínezi, ezt akarja elkerülni.

    [ Módosította: Intruder2k5 ]
  • Delila_1
    veterán

    Sziasztok!
    Megoldható, hogy csak a szorzott számok metszéspontjában lévő eredmény legyen kiemelve a táblán, és ne az összes találat?

    Kijelölöd a B1: K1 tartományt, majd felt. formázás képlettel, ahogy Fferi írta. A képlet
    =B1=$O$2, megadod a kék hátteret.

    Kijelölöd az A2: A11 tartományt, itt a képlet =A2=$N$2, szín narancs.

    Most a B2: K11 terület képlete következik, ez =B2=$P$2, szín zöld.

  • Fferi50
    Topikgazda

    Köszönöm, de kérlek írd le részletesebben melyik cellába írok mit.

    Szia!
    Egyetlen cellába sem kell írnod semmit!
    Az általad bemutatott minta alapján a feltételes formázást az alábbiak szerint tudod megtenni:
    Kezdőlap - feltételes formázás - új szabály -
    Ezután a formázandó cellák kijelölése képlettel:

    Kiválasztod a formátumot, majd OK.
    A formázandó terület kiválasztásához:

    Kiválasztod a szabályt és beírod az érvényességi területet:

    Ha a képletben nem az A1 cella lenne, akkor a Szabály szerkesztése gombra kattintva átírod A1- a sor és oszlop függvény paraméterét.
    Majd OK vagy/és Alkalmaz.

    Üdv.

Új hozzászólás Aktív témák