Hirdetés

2024. április 28., vasárnap

Gyorskeresés

Útvonal

Fórumok  »  OS, alkalmazások  »  Microsoft Excel topic (kiemelt téma)

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-11-13 08:31:56

LOGOUT.hu

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.

Összefoglaló kinyitása ▼

Hozzászólások

(#49601) lappy válasza Luckyyy23 (#49600) üzenetére


lappy
őstag

ezt nézd meg

Bámulatos hol tart már a tudomány!

(#49602) Troy. válasza fjns (#49551) üzenetére


Troy.
addikt

Csak furcsálltam, hogy szkennelt pdf-ről van szó, nem pedig normál (kereshető) pdf-ről. Köszönöm.
Könyvet lementettem a biztonság kedvéért.

.

(#49603) fjns válasza Luckyyy23 (#49591) üzenetére


fjns
lelkes újonc

Szia, a linkben található táblázat egy lehetséges megoldás a problémádra...

[link]

(#49604) Delila_1 válasza fjns (#49603) üzenetére


Delila_1
Topikgazda

A 49599-es hsz-ben leírt képlet ugyanezt az eredményt adja a C oszlopban. :)

Szerk.: a C oszlopot lehet majd rendezni Z-A sorrendben, hogy alulra kerüljenek a D-ben nem szereplő tételek.

[ Szerkesztve ]

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#49605) fjns válasza Delila_1 (#49604) üzenetére


fjns
lelkes újonc

Szia Delila!
Ha a #49599-ben ajánlott képletedet (C1: =HAHIBA(FKERES(A1;D:E;2;0);"")) alkalmazzuk az eredeti állapotra, akkor az lesz az eredmény, ami a következő képen látható.

Ez nem felelt meg a probléma gazdájának, amit a #49600-ban jelzett is számodra.
A #49603-ban linkelt táblázatban az volt a célom, hogy teljesüljön az elvárás, amit legjobban a #49600-ban látható kép mutat, illetve az első ide vonatkozó hozzászólásban, a #49591-ben olvasható igények. Ebből a leírásból erre figyeltem elsősorban: "ami nincs az „A” oszlopban csak a „D” oszlopban az kerüljön alulra". Az idézett szövegrész nem százszázalékosan egyértelmű, de próbáltam a legvalószínűbb értelmezést adni neki. Úgy gondolom, hogy a táblázatom Munka2 munkalapja megfelel az elvárásoknak...
Üdv, János

(#49606) stigma


stigma
addikt

Sziasztok.

Régebben volt 1 kérdésem, amit sikerült megoldani a Mutt fórumtárs segítségével, hogy egy adott mappában keresgessek fájlokat.

A Query szépen megkeresi, és frissíti is is a fájlokat ha lefuttatom.
Annyit optimalizáltam rajta, hogy egy új lekérdezésbe a mappa+fájlneveket összefűztem és eredményként csak az elérési útjaikat adja vissza.
Van arra lehetőség, hogy VBA kóddal ezeket kimentsem 1 listába/tömbbe bármibe?

Erre azért lenne szükségem mert egy meglévő makrót írok át, ahol a helyi hálózat helyett Sharepoint felületről szedi az adatokat a makró.

Tud valaki segítnei?

[ Szerkesztve ]

....iPhone 13 / iPad 9th Gen. Wifi 64GB...

(#49607) Delila_1 válasza fjns (#49605) üzenetére


Delila_1
Topikgazda

Őszintén szólva egyre kevésbé értem a feladatot, és a kérdező sem válaszolt a megoldásodra.

Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

(#49608) fjns válasza Delila_1 (#49607) üzenetére


fjns
lelkes újonc

Azt én sem értem, hogy miért úgy kell a kérdezőnek, ahogyan leírta. Ilyen előfordult már máskor is, ez a kérdezőre tartozik, nekünk válaszolóknak nem is kell ismernünk az okokat.
Mindig az a célom, hogy olyan megoldás szülessen, amilyet a kérdező szeretne.
Ahogyan írtam, nem teljesen biztos, hogy jó az értelmezésem. Előfordulhat, hogy az említett kimaradó tételeket az A és B oszlopban szeretné látni alul, én pedig a D és E oszlopba tettem (ez utóbbit tartottam valószínűbbnek és ésszerűbbnek). Ha mégis az A/B-be szeretné, akkor pedig egyszerű módosítással az is megoldható...

(#49609) bugizozi válasza Fferi50 (#49560) üzenetére


bugizozi
őstag

Elvileg megvan a megoldás erre a Ctrl + C mizériára bár én nem értem. Azt írja:

"két monitorom van, ha a másodlagoson jön be az Excel, akkor nem működnek ezek a parancsok, de most átvittem a főképernyőre, bezártam és megnyitottam újra, és itt működik. És ha ezt húzom át a másikra, akkor utána jó"

:F

VCP7-DCV, CCNA ||| Ami működik, ahhoz nem szabad hozzányúlni!

(#49610) oke


oke
senior tag

Sziasztok,

Szeretnék bizonyos érték tartományok alapján egy kategorizálást csinálni, ebben kérném a segítségeteket. Az alábbiról lenne szó:

Ha egy érték 0 és 9,99 közötti -> akkor a kategóriája a sor végén: "10 alatti"
Ha egy érték 10 és 19,99 közötti -> akkor a kategóriája a sor végén: "10 és 20 közötti"
Ha egy érték 20 és 29,99 közötti -> akkor a kategóriája a sor végén: "20 és 30 közötti"
Ha egy érték 30 feletti-> akkor a kategóriája a sor végén: "30 felettii"

Hogyan lehetne ezt megoldani? Kb 600 sor érintett.

(#49611) lappy válasza oke (#49610) üzenetére


lappy
őstag

ha függvényt próbáltad már
vagy lehet fkeres is

[ Szerkesztve ]

Bámulatos hol tart már a tudomány!

(#49612) Fferi50 válasza oke (#49610) üzenetére


Fferi50
őstag

Szia!
A többszörös HA függvények helyett erre használható az FKERES függvény, melynek negyedik paraméterét - tartományban keres - igazra kell állítani.
A kereséshez létre kell hozni egy kétoszlopos táblázatot:
-- első oszlop tartalmazza a határértékeket
-- második oszlop a hozzá tartozó kategóriát.
Pl. így:
A B1 cella képlete húzható lefelé.
Üdv.

[ Szerkesztve ]

(#49613) oke válasza Fferi50 (#49612) üzenetére


oke
senior tag

Szia,

Köszi, így valóban egyszerűbb. Sokat használom az FKERES-t, de mindig pontos értékre kerestem, nem tudtam, hol lehet hasznos a nem pontos értékre keresés, de így már ez is kerek.

(#49614) Misi_D válasza oke (#49610) üzenetére


Misi_D
tag

Esetleg nézz utána a haelsőigaz függvénynek (angolul ifs). O365 kell hozzá, a többi kiadásnál nem tudom, mikor került be a kínálatba...

Ha nem tetszik, ahogy vezetek, akkor tünés a járdáról!

(#49615) Mutt válasza stigma (#49606) üzenetére


Mutt
aktív tag

Szia,

Power Query ... Van arra lehetőség, hogy VBA kóddal ezeket kimentsem 1 listába/tömbbe bármibe?

Munkalapra - rejtsd el ha nem akarod hogy lássák - kell töltened és onnan tudod tömbbe tenni.
Olvasgatva a neten mások próbálkoztak adatmodel-be töltéssel és onnan különböző módokon kinyerni az adatot, de nehézkesnek tűnik szemben a munkalapra töltéssel.

üdv

A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

(#49616) Mutt válasza dellfanboy (#49589) üzenetére


Mutt
aktív tag

Szia,

vagy vmi jo YT csatorna?/blog?
YT-on ExcelisFun-t javaslom, ahol gyakorlati példákon keresztül mutat be megoldásokat. Évekkel ezelőtt volt egy sorozatuk MrExcel-el, Dueling with MrExcel, ahol Mike függvényekkel, míg Bill VBA-val oldotta meg ugyanazt a problémát.

MrExcel-t is érdemes nézni YT-on, az elmúlt években inkább az új funkciókat magyarázza el.

Még tudom javasolni az alábbi csatornákat:
- MyOnlineTrainingHub
- Leila Gharani
- Excel Macro Mastery

tudtok olyan hirlevelet, ami excel feladatokat kuld gyakorlas cellal?
Nem ismerek ilyet, de nézegess fórumokat ahol láthatod a problémát és megoldás(oka)t is.
pl. ExcelForum.com, MrExcel.com, Chandoo.org

Szerintem azzal nincs gond, hogy csak ~20 függvény van rendszeresen használva.
1. Érdemes megnézni, hogy ugyanazt az eredményt el tudod-e érni máshogy/segédoszlopok nélkül.
2. Ha új Excel-ed van vagy Microsoft365-öd, akkor vannak új függvények amelyekkel ismerkedj. pl. XLOOKUP VLOOKUP helyett, FILTER AGGREGATE helyett.
3. Power Query-vel ismerkedj, főleg ha sok adattal dolgozol.
4. Készíts saját függvényeket (UDF) vagy addon-t hogy megkönnyítsd az ismétrlődő feladatok végrahajtását.

Végül itt egy kis feladat.
Az Excel-ben kettes számrendszerből tízesbe értékeket a BIN.DEC függvénnyel lehet átváltani, de a függvény csak 511-ig ad helyes eredményt. Kellene egy képlet, amellyel bármilyen számot át lehetne váltani.

[ Szerkesztve ]

A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

(#49617) #86883328


#86883328
törölt tag

Sziasztok!

Van egy árlistám amiben a kedvezményes árak vannak listázva és az árak mellett, hogy hány százalékos kedvezménnyel kaptam annyiért. Mi a képlet ha egy másik oszlopban az eredeti árakat szeretném látni?

(#49618) Fire/SOUL/CD válasza #86883328 (#49617) üzenetére


Fire/SOUL/CD
félisten

eredeti ár = kedvezményes ár / (1-kedvezmény)

Ha véletlenül nem százalék formátumban vannak a kedvezmények, hanem számként (pl. nem 10% van a cellában, hanem csak simán 10), akkor

eredeti ár = kedvezményes ár / (1-kedvezmény/100)

[ Szerkesztve ]

Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)

(#49619) #86883328 válasza Fire/SOUL/CD (#49618) üzenetére


#86883328
törölt tag

Hát ez szuper. A felső megoldás jó lett. Nagyon köszönöm. Hárman nem jöttünk rá.

(#49620) 3DFan


3DFan
aktív tag

Sziasztok!
Beágyazott egyenletet hogyan lehet készíteni? Köszönettel.
[kép]

(#49621) Fferi50 válasza 3DFan (#49620) üzenetére


Fferi50
őstag

Szia!
Beszúrás - Szimbólumok - Egyenlet
Üdv.

(#49622) lappy válasza 3DFan (#49620) üzenetére


lappy
őstag

Ezt nézd meg

Bámulatos hol tart már a tudomány!

(#49623) Salex1


Salex1
senior tag

Egy igen nehéz feladat állna előttem. Adott egy jó nagy tábla, BC oszlopában vannak a kezelendő adatok, amiket szét kellene bontani.
Az adat tagolása xx-xxxxx-xxxxx-xxxxxxxx-xxxxxx, 2-5-5-8-6 karakter, kötőjellel elválasztva.
Az első kettő tag a hely,
harmadik a szoba,
negyedik a gép,
ötödik egy azonosító.
Így:

DB-BAN54-0ROOM-00NUMBER
DB-BAN54-0ROOM-00NUMBER-000207
DB-BAN54-0ROOM-00NUMBER-000209
DB-BAN54-0ROOM-00NUMBER-000210
DB-BAN54-BALAN-SARTO_A-000013
DB-BAN54-BALAN-SARTO_A-000014
DB-BAN54-DESCI-0NIKKO_A-000046

(előfordulhat üres cella is)

Ebből kellene olyan, hogy minden eltérő azonosítónál (azaz utolsó tag) legyen előtte egy sorban a hely (2-5 kar.), következő sorban már a szoba is (2-5-5 kar.), megint következőben gép (2-5-5-8).
Viszont ami már szerepelt (hely, szoba vagy gép már fel volt tüntetve) az nem kell még egyszer.
Így:
DB-BAN54
DB-BAN54-0ROOM
DB-BAN54-0ROOM-00NUMBER
DB-BAN54-0ROOM-00NUMBER-000207
DB-BAN54-0ROOM-00NUMBER-000209
DB-BAN54-0ROOM-00NUMBER-000210
DB-BAN54-BALAN
DB-BAN54-BALAN-SARTO_A
DB-BAN54-BALAN-SARTO_A-000013
DB-BAN54-BALAN-SARTO_A-000014
DB-BAN54-DESCI
DB-BAN54-DESCI-0NIKKO_A
DB-BAN54-DESCI-0NIKKO_A-000046

A többi adat a táblázatban is fontos, hogy maradjon. A beszúrt sorok lehetnek a többi mezőkben üresek.

[ Szerkesztve ]

(#49624) Fire/SOUL/CD válasza Salex1 (#49623) üzenetére


Fire/SOUL/CD
félisten

DB-BAN54-0ROOM-00NUMBER
DB-BAN54-0ROOM-00NUMBER-000207

Ezek szerint, lehet olyan cella is, ami nem követi a megadott formátumot és nincs azonosító a végén ill. az azonosítók mind egyediek (nincs két egyforma)? :U

[ Szerkesztve ]

Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)

(#49625) stigma válasza Mutt (#49615) üzenetére


stigma
addikt

Hi, köszi, igen eddig így csináltam, viszont van egy érdekesség amire nem jövök rá mi lehet a gond.
Refresh utána táblázat aktualizálódik, viszont, ha elérési úton változtatok egy másik mappára, akkor nem mindig frissül a táblázat (Képletek /Számolási beállítás /automatikusan van) és a régi elérési utakat dobja bele.
Application.wait-et is tettem bele, de minden 2. futtatás után jön elő a hiba, mikor mappát váltok.

A fájlokat egy tömbbe töltöm bele, ami tökéletes, mert eddig nem igazán kellett ezen kívül változtatnom a makrón hála istennek.

A többire guglizok, mert szerintem valamit én rontok el. Köszi az eddigi segítséget. :R

....iPhone 13 / iPad 9th Gen. Wifi 64GB...

(#49626) 3DFan válasza Fferi50 (#49621) üzenetére


3DFan
aktív tag

Tudom, hogy honnan szúrom be, de a képen megjelenik a szerkesztőlécen a BEÁGYAZ függvény az egyenlet kijelölésekor.
A Beszúrás - Szimbólumok - Egyenlet lehetőséggel beillesztettnél viszont nem. Miért van ez?

(#49627) Salex1 válasza Fire/SOUL/CD (#49624) üzenetére


Salex1
senior tag

A tagolás megegyezik minden esetben, de most láttam, hogy került bele hibásan olyan, aminél a 4. tag csak 7 karakter, ez javítva lesz.
Lehet egyező azonosító.

(#49628) Fire/SOUL/CD válasza Salex1 (#49627) üzenetére


Fire/SOUL/CD
félisten

Az első cellát vélem Én hibásnak, mert nincs azonosítója (hiányzik a végéről), egyáltalán nem mindegy, hogy ilyen cella/cellák is van/vannak avagy sem.
Addig is írtam egy makrót, ami most hibásnak vél ilyen cellá(ka)t és kérésre kihagyja a feldolgozását, ez az eredménye a futtatásának.

Azért nem teszem be a kész makrót még, mert ha véletlenül az a cella nem hibás (itt a példában az A2 cella), akkor módosítanom kell a makrón.... :B
(most viszont egy gépet kell összepakolnom, csak 6-7 órakor érek rá vele foglalkozni, addigra meg lehet, hogy dobnak be mások is megoldásokat)

[ Szerkesztve ]

Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)

(#49629) 3DFan válasza Fferi50 (#49621) üzenetére


3DFan
aktív tag

Megtaláltam : Beszúrás - Szöveg - Objektum - Microsoft Equation 3.0 .
[kép]

(#49630) 3DFan


3DFan
aktív tag

Lehet nagyon butát kérdezek. Megoldható Excel alatt az, hogy egy cellában növekedjen egy szám szabályos időközönként, magától frissülve? Köszönettel.

(#49631) Fferi50 válasza 3DFan (#49629) üzenetére


Fferi50
őstag

Ügyes vagy! :C

(#49632) Fferi50 válasza 3DFan (#49630) üzenetére


Fferi50
őstag

Szia!
Időzítéses makróval igen.
Üdv.

(#49633) Fire/SOUL/CD válasza Fire/SOUL/CD (#49628) üzenetére


Fire/SOUL/CD
félisten

2 dolgot kell beállítanod a makróban, hogy HONNAN (eredeti adatok) és hogy HOVA (átalakított adatok) másolódjanak az adatok.
Mindkét állítandó érték elé az [EZT KELL BEÁLLÍTANOD]kommentet tettem.

Module1-be másolandó kód

Option Explicit

'Fire/SOUL/CD - 2022

Public Sub Fire_Salex1_Process()

    'kötött formátum elválasztó karaktere
    Const MYDELIMITER = "-"

    'a feldogozandó adatok ebben az OSZLOP-ban és azon belül ebben a SOR-ban kezdődnek
    Dim MySrcColumn, MySrcColumnFirstCell As String
    'tartomány, amit a makró a MySrcColumn és MySrcColumnFirstCell értéke alapján határoz meg/generál
    Dim MySrcRange As Range
    'a feldolgozott adatokat ebbe a tartmányba írja a makró
    Dim MyDestRange As Range
    'a MySrcRange tartományban található aktuális cella tartománya (1 cella)
    Dim MyCell As Range
    
    'Variant típusú dinamikus tömb, ami az N számosságú halmaz N0 - N-1 elemét tárolja
    Dim MyUniqueSubStrArray() As Variant
    'Variant típusú dinamikus tömb, ami az N számosságú halmaz N0 - N-1 elemének feldolgozottságát tárolja (True/False)
    Dim MyUniqueSubStrProcessedArray() As Variant
    'szöveg típusú dinamikus tömb, amelynek elemei az aktuális cella
    'SPLIT parancs segítségével, MYDELIMITER paraméterrel elválasztott elemeit tartalmazza
    Dim MyTempArray() As String
    'átmeneti változó
    Dim MyTempStr As String
    'átmeneti változó, ami meghatározza, hogy a MyTempStr változó szerepel-e a MyUniqueSubStrArray-ben
    Dim MySubStr As Variant
    'nem megfelelő cella adat esetén megjelenő ablak visszatérési értéke
    Dim SelectedOptionOnWarningBox As Integer
    'makró-ciklusokban használt Long típusú változók (ciklus-számlálók)
    Dim i, j As Long
    
    'hogy gyorsabb legyen a makró, pár eseménykezelőt letiltunk
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    
    '[EZT KELL BEÁLLÍTANOD] - forrástartomány kezdetének beállítása (itt a példában A1) innen kezdődnek a feldolgozandó adatok
    MySrcColumn = "A"
    MySrcColumnFirstCell = "1"
    Set MySrcRange = Range(MySrcColumn & MySrcColumnFirstCell & ":" & MySrcColumn & Cells(Cells.Rows.Count, MySrcColumn).End(xlUp).Row)
    
    '[EZT KELL BEÁLLÍTANOD] - ettől a tartománytól kezdve írodnak ki a feldolgozott adatok (itt a példában B1-től)
    Set MyDestRange = Range("B1")
    
    'dinamikus tömbök méretének beállítása, egyéb változók inicializálása
    ReDim MyUniqueSubStrArray(Cells(Cells.Rows.Count, MySrcColumn).End(xlUp).Row)
    ReDim MyUniqueSubStrProcessedArray(Cells(Cells.Rows.Count, MySrcColumn).End(xlUp).Row)
    MyTempStr = ""
    i = 0
    j = 0
    
    'végignézzük a forrástartomány celláit egyenként
    For Each MyCell In MySrcRange
        'ha az aktuális cella üres, akkor kihagyjuk, egyébként feldolgozzuk
        If Not IsEmpty(MyCell.Value) Then
            'aktuális cellát feldaraboljuk az elválasztó-karakter szerint, kvázi, mint szövegből oszlopok
            MyTempArray = Split(MyCell.Value, MYDELIMITER)
            'kötött formátum szerint a MyTempArray elemeinek a száma 5-nek kell, hogy legyen
            'ezért megvizsgáljuk, hogy annyi-e
            If WorksheetFunction.CountA(MyTempArray) = 5 Then
                'igen, 5 eleme van a tömbnek
                'a MyTempStr dinamikus tömbbe bemásoljuk a MyTempArray első 4 elemét
                MyTempStr = MyTempArray(0) + MYDELIMITER + MyTempArray(1) + MYDELIMITER + MyTempArray(2) + MYDELIMITER + MyTempArray(3)
                'megvizsgáljuk, hogy a MyUniqueSubStrArray tömb elemei (az összes) tartalmazzák-e a MyTempStr-t
                MySubStr = Filter(MyUniqueSubStrArray, MyTempStr)
                'ha igen, akkor az elemeire bontott értékeket a MyDestRange + j + index címre másoljuk
                'és a MyUniqueSubStrProcessedArray aktuális indexű elemét TRUE-ra állítjuk
                'hogy a továbbiakban ne kelljen feldolgozni
                If UBound(MySubStr) < 0 Then
                    MyUniqueSubStrArray(i) = MyTempStr
                    MyUniqueSubStrProcessedArray(i) = False
                    If (InStr(1, UCase(MyCell.Value), UCase(MyUniqueSubStrArray(i)), vbTextCompare)) And (MyUniqueSubStrProcessedArray(i) = False) Then
                        Cells(MyDestRange.Row + j, MyDestRange.Column) = MyTempArray(0) + MYDELIMITER + MyTempArray(1)
                        Cells(MyDestRange.Row + j + 1, MyDestRange.Column) = MyTempArray(0) + MYDELIMITER + MyTempArray(1) + MYDELIMITER + MyTempArray(2)
                        Cells(MyDestRange.Row + j + 2, MyDestRange.Column) = MyTempArray(0) + MYDELIMITER + MyTempArray(1) + MYDELIMITER + MyTempArray(2) + MYDELIMITER + MyTempArray(3)
                        Cells(MyDestRange.Row + j + 3, MyDestRange.Column) = MyCell.Value
                        j = j + 4
                        MyUniqueSubStrProcessedArray(i) = True
                    End If
                    i = i + 1
                Else:
                    'ha nem, akkor az adott cella értékét be kell másolni a MyDestRange + j címre
                    Cells(MyDestRange.Row + j, MyDestRange.Column) = MyCell.Value
                    j = j + 1
                End If
            
            Else:
                'ha nem megfelelő a kötött formátum, akkor feltesszük a kérdést, hogy mi legyen
                'kihagyja a makró a feldolgozásból, avagy kilépjen
                SelectedOptionOnWarningBox = MsgBox("Nem szabványos formátumú adat a(z) " & MyCell.Address & " cellában:" & vbLf & _
                        MyCell.Value & vbLf & vbLf & _
                        "[OK] - hibás cella kihagyása" & vbLf & _
                        "[Mégse] - makró megállítása", vbQuestion + vbOKCancel)
                If SelectedOptionOnWarningBox = vbCancel Then
                    Exit Sub
                End If
                
            End If
        
        End If
        
    Next MyCell
    
    'eseménykezelőket újra engedélyezzük
    Application.ScreenUpdating = True
    Application.EnableEvents = True
    
End Sub

[ Szerkesztve ]

Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)

(#49634) 3DFan válasza Fferi50 (#49632) üzenetére


3DFan
aktív tag

Szia! Tudnál benne segíteni? Köszönettel.

(#49635) Fire/SOUL/CD válasza 3DFan (#49630) üzenetére


Fire/SOUL/CD
félisten

Lehet egy buta kérdésem? Ez miért/mire kellene? (rengeteg feladatra lehet alkalmazni)
Amúgy ha megoldható és ha tudunk, segítünk.

[ Szerkesztve ]

Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)

(#49636) Mutt válasza Salex1 (#49623) üzenetére


Mutt
aktív tag

Szia,

Makrós megoldást kaptál, itt egy Power Query-s (PQ).

1. Legyen egy táblázatban az adatsorod.

2. Adatok -> Táblázatból/Tartományból beszúrással bekerül PQ szerkesztőbe a lista.
3. A minta nem követte a 2-5-5-8-6-os logikát, azért inkább azt csináltam hogy kötőjelenként felosztottam, majd utána újra előállítottam a helyes adatokat. Kezdőlap -> Oszlop felosztása opciót használd.

4. Ez után lesz egy automatikus típus konverzió lépés, amelyet jobb oldalt a lépések listából érdemes törölnőd.
5. Állítsuk elő az általad kívánt azonosítókat. Jelöld ki az első és második oszlopot, majd Átalakítás -> Oszlopok egyesítése kell. Én ID1 nevet adtam az új oszlopnak.

6. Jelöld ki az újonnan létrehozott és a következő oszlopot, majd Oszlopok hozzádása -> Oszlopok egyesítése. Én ID2-nek neveztem az új oszlopot.

7. Még kell 2 újabb oszlop egyesítés, mindig a frissen létrehozott oszlophoz fűzve a szükségeset.
Vmi ilyen eredmény lesz.

8. Jelöld ki az ID1, ID2, ID3, ID4 oszlopokat, majd Kezdőlap -> Oszlopok eltávolítása -> További oszlopok eltávoltása menűvel töröljük a felesleges oszlopokat.
9. Jelöld ki az ID4 oszlopot, majd Kezdőlap -> Csoportosítási szempont opcíót álltsd így be.

10. Oszlop hozzáadása -> Egyéni oszlopot válaszd, a képlet legyen ez:
=List.Combine({[Adatok][ID1],[Adatok][ID2],[Adatok][ID3],[Adatok][ID4]})

Egy kis magyarázat ehhez: a 9-es lépésben minden sorhoz hozzárendeltük a hozzátartozó, magasabb szintű azonosítókat. Ezeket nyerjük ki a fenti képlettel. PQ-ben több típus van (record, list, table). Record egy mező, ami nem jó nekünk, a list több record, amelyeket sorokba/oszlopokba tehetünk, a table pedig egy táblázat, ami megint nem lesz jó nekünk a megoldáshoz.
11. Az új oszlop fejlcében a jobb oldali ikonra kattinva válaszd a sorokba bontást.

12. Töröld a másik két oszlopot, nem kellenek már.
13. Vegyük ki az ismétlődéseket: Kezdőlap -> Sorok eltávolítása -> Ismétlődések eltávolítása

14. Töltsük vissza Excelbe a végeredményt, Kezdőlap -> Bezárás és betöltés.

üdv

A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

(#49637) Mutt válasza stigma (#49625) üzenetére


Mutt
aktív tag

Szia,

Refresh utána táblázat aktualizálódik, viszont, ha elérési úton változtatok egy másik mappára, akkor nem mindig frissül a táblázat (Képletek /Számolási beállítás /automatikusan van) és a régi elérési utakat dobja bele.

Itt kérdésem, hogyan adod meg a másik elérési útvonalat?
A Power Query-ben "hardkódolva" vannak az elérési útvonalak. Adatok -> Adatok beolvasása -> Adatforrás beállítása alatt lehet könnyedén módosítani a forrást ha kell. (Régen csak az M-kódban lehetett módosítani a forrást.)

Jobb megoldás azonban hogy a munkafüzet vmelyik cellájába írod be az útvonalat, majd ezt is betöltöd Power Query-be és ezt paraméterként használod a másik lekérdezésben. Nézd meg ezt a videót róla.

üdv

A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

(#49638) Salex1 válasza Fire/SOUL/CD (#49633) üzenetére


Salex1
senior tag

Köszönöm neked is és MUTT kollégának is. Nemsokára neki esek és kipróbálom.

(#49639) stigma válasza Mutt (#49637) üzenetére


stigma
addikt

Hi, köszi az infót útközben sikerült megoldani, de nem írtam be ide neked, ezért sorry.
Youtube videot nam találom mi alapján csináltam, de leírom gyorsan.

Mappa elérési útvonala tegyük fel a A2-es cellában van, amiből a Sharepoint alatt az adatokat beolvassa a makró.
- A2-es cellánaka névtartományát elneveztem ,,mappa"-nak
- Kattingatós módszerrel csináltam a sharepoint mappából egy fájlkeresést, majd a kódját az alábbi pár sorral módosítottam a PowerQuery-ben:
let 
    mappa = Excel.CurrentWorkbook(){[Name="mappa"]}[Content]{0}[Column1],
    Forrás = SharePoint.Files(mappa, [ApiVersion = 15]),

- Ezek után egy munkalapra ezeket a fájlokat kilistáztam ahogy mondtad/írtad.

És ugye az általad írt kóddal kellett volna mennie tökéletesen, ami ment is de ha mappát váloztatok a frissítés nem midnig tökéletes:
ActiveWorkbook.Connections("Lekérdezes - querynév").Refresh

Erre ez volt a megoldás, amivel már 100%-ra működik:
    With ThisWorkbook.Connections("Lekérdezes - querynév").OLEDBConnection
        bRfresh = .BackgroundQuery
        .BackgroundQuery = False
        .Refresh
        .BackgroundQuery = bRfresh
    End With

Ez lefutáskor frissíti az adatokat tökéletesen, és így már nincs az, hogy ha átírom a mappanevet néha a régi fájlnevek jönnek be.

Most egy picit még szívok a sharepoint-os elérési úttal- de megoldom :DDD - , mert az elérési útban ha van space nem dolgozza fel, még azt sem ha át van aláakítva %20-al.
Tehát mondjuk ilyesmik lennének az elérési utak amik fixek:
- https://sharepoint.com/Shared Documents/mappa1
- https://sharepoint.com/Shared Documents/mappa2

Itt a Powerquery-ben replace-el kicserélm a space-t "%20"-ra de nem működik, viszont a megoldásom az lett, hogy az elérési utat ezzel vizsgálom ( https://sharepoint.com/) majd egy másik oszlopban ahol a Folder-t listázza, ott szűröm, hogy a "mappa1" vagy "mappa2" bennelegyen és így már életképes a megoldás.

[ Szerkesztve ]

....iPhone 13 / iPad 9th Gen. Wifi 64GB...

(#49640) Agony


Agony
aktív tag

Sziasztok!

Excel makrók terén szeretnék egy kis segítséget kérni egy kollégámnak. Van egy excele, amiben van egy hosszú makró, ami így kezdődik:

Sub atis()
 
    Dim MyPath          As String
    Dim MyFile          As String
    Dim fileName        As String
    Dim Wkb             As Workbook
    Dim Cnt             As Long
    Dim munkaszam       As Variant
    Dim MM_2022_        As Variant
     
        
    Application.ScreenUpdating = False
    
  MyPath = "q:\Megrendelések\Alapanyagigeny\Ütemezés"
     
    If Right(MyPath, 1) <> "\" Then MyPath = MyPath & "\"
    
    munkaszam = Worksheets(1).Cells(1, 4)
    
    fileName = "MM_2022_" & munkaszam
     
    MyFile = (MyPath & fileName)
     
            
        FileCopy MyFile + ".csv", MyFile + ".txt"
        
        Workbooks.OpenText fileName:=MyFile + ".txt", Origin:=1250, StartRow:=1, DataType:=xlDelimited, Semicolon:=True


Ahogy ez a kód elér oda, hogy létrehozza a TXT fájlt, azonnal elszáll az excel, teljesen bezáródik. A MyPath részen megadott elérési út helyes, évek óta használja ezt az excelt, de most egyik napról a másikra behalt.

Ha az excelt átrakom helyi meghajtóra (pl.: C:\Megrendelések) és módosítom a makrót ennek megfelelően, akkor tökéletesen lefut.

Mi lehet vele a probléma?

Erre gondoltam:
Macros from the internet will be blocked by default in Office

De megnéztem az excelt a Readiness Toolkit for Office -al és nem jelez hibát.

Nem vagyok egy nagy excel guru, csak eszembe jutott ez a topic és próbálok neki segíteni, úgyhogy előre is köszönöm ha valaki tud tanácsot adni, merre induljak. :K :R

Üdv,
Levi

Start with a whisper, end with a scream!

(#49641) marec1122


marec1122
senior tag

Sziasztok!

.csv-be szeretnék kimenteni egy excel fület de az ékezetes betűk helyére krikszkrakszokat ír. Találtam egy weboldalt ahol ajánl egy Unicode Text.xlam fájl letöltését és beimportálását excelbe és szerinte ez megodlja a problémát. Kérdés, hogy valóban ez a megoldás és ha igen akkor megbízható e amit ajánl letöltésre?

[link]

Csak megfontoltan :D "Öregember nem gyorsvonat!" John McClane

(#49642) Fire/SOUL/CD válasza marec1122 (#49641) üzenetére


Fire/SOUL/CD
félisten

Nem tudom milyen verziójú Excel-t használsz, de az újabbakban van lehetőség CSV UTF-8 formátumban menteni.

Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)

(#49643) stigma válasza stigma (#49639) üzenetére


stigma
addikt

Útközben megtaláltam, hogy space nem lehet az elérési utban és nem is tudom helyettesíteni a %20-al ezért a root mappával/elérési úttal kell dolgoznom. pl.: https://sharepoint.com/

....iPhone 13 / iPad 9th Gen. Wifi 64GB...

(#49644) Fire/SOUL/CD válasza Agony (#49640) üzenetére


Fire/SOUL/CD
félisten

Tehát felcsatolt/hálózati meghajtón lévő fájl esetében van gond, akkor ezt próbáld meg.
Lehet, hogy a Megbízható helyek engedélyezése saját hálózaton opció engedélyezése önmagában megoldja a gondot, ha nem, akkor meg add hozzá almappákkal együtt a hálózati útvonalat.

[ Szerkesztve ]

Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)

(#49645) marec1122 válasza Fire/SOUL/CD (#49642) üzenetére


marec1122
senior tag

köszi, teljesen igazad van. most már csak az a gáz, hogy miután lecserélem a ; sima , re és be akarom importálni outlookba megint elkúsznak az ékezetes betűk krikszkrakszokká

Csak megfontoltan :D "Öregember nem gyorsvonat!" John McClane

(#49646) Fire/SOUL/CD válasza marec1122 (#49645) üzenetére


Fire/SOUL/CD
félisten

1. nem igazán értem, hogy minek kell lecserélni a pontosvesszőt vesszőre, amikor az importáláskor mind új felületen, mind a régi felületen is van lehetőség az elválasztó karakter kiválasztására
Bocsesz, Outlook-ba szeretnéd importálni az adatokat, ott meg vesszővel elválasztott CSV-t vár...

2. lehet, hogy pont magadat szivatod meg, mert az a progi, amivel lecseréled a pontosvesszőt vesszőre, lehet az cseszi el a karakterkódolást, amikor elmented... :DDD
Ügyelj rá, hogy a progi felismerje automatikusan az UTF-8 kódolást(bár az Excel valójában UTF-8 BOM kódolással ment asszem), ha nem, akkor állítsd be neki ill. hogy mentéskor is UTF-8-ba legyen mentve vagy ha így sem jó, akkor UTF-8 BOM-ba. Ez utóbbi a Notepad++ -al megoldható.

[ Módosította: Pyttawrx ]

Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)

(#49647) Agony válasza Fire/SOUL/CD (#49644) üzenetére


Agony
aktív tag

Köszi, az már megvolt, de nem oldotta meg, viszont közben meglett a megfejtés.

A MyPath = "q:\Megrendelések\Alapanyagigeny\Ütemezés" hivatkozással volt baja, az ékezetek miatt. Ékezet nélkül tökéletesen megy hálózati meghajtóról is, úgyhogy annyival át lett hidalva, hogy fel lett neki csatoltva a Q:\Megrendelések\Alapanyagigeny\Ütemezés egy A: meghajtóként, így eltűnt belőle az összes ékezet és működik.

De hogy mi változott az évek óta működő makró működésében azt nem tudom.... talán valami Office frissítés volt és azzal kavartak bele. :U

Start with a whisper, end with a scream!

(#49648) Fire/SOUL/CD válasza Agony (#49647) üzenetére


Fire/SOUL/CD
félisten

Őszintén szólva Én sem tudom, hogy mi változhatott meg, de legalább lehetett orvosolni.

Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)

(#49649) Soma01


Soma01
veterán

Sziasztok!
Tudtok abban segíteni nekem, hogy hogyan lehetne azt megoldani, hogy ha egy dokumentumon belül több fül is van, ezek formázottsága mindig legyen egyforma, de a cellák tartalma (értéke) ne változzon? Tehát mondjuk legyen egy referencia fül és amit itt elkövetek, az az összes többi fülön is menjen végbe automatikusan. Pl. oszlop vagy sorszélesség, betűtípus, színezések, méret változtatás. Tehát legyen 30 klón füle egy referencia fülnek. (formázás szempontból) Az adatok a fülek celáiban eltérnek, azt nem kell klónozni, csak a formázást. Be lehet ilyet állítani?
A cella adatokat át tudom venni, más fülről, de a stílust, formázást, mint a másol, beilleszttel (csak a formátum beillesztése), azt nem tudom, hogy hogy kell.
Ja, elég ha egy tartománnyi rész viselkedik így. Az 2345666. sornak nem kell így viselkednie. Kb 50 sor és 30 oszlopról lenne csak szó.
Office 2013 vagy Google sheet

[ Szerkesztve ]

(#49650) lappy válasza Soma01 (#49649) üzenetére


lappy
őstag

kijelölöd az összes munkalapot (CTRL billentyűvel) amit formázni szeretnél és az egyik munkalapon megcsinálod a formázást (így valójában az összes lapon megteszi)

[ Szerkesztve ]

Bámulatos hol tart már a tudomány!

Útvonal

Fórumok  »  OS, alkalmazások  »  Microsoft Excel topic (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.