Hozzászólások
-
SzerzőBejegyzés
-
Szia!
Csak egy apróságon múlik a dolog. A mentéskor meg kell adni a Local:=True argumentumot is.
Ezzel utasítjuk arra, hogy a helyi beállításoknak megfelelő elválasztójeleket kezeljen.
tehát olvasáskor és íráskor is a magyar rendszernek megfelelően pontosvesszőket használ.Ez persze csak akkor igaz, ha magyar a Windows vagy olyan, ahol a nemzetközi beállításokban a listaelválasztó jel pontosvessző.
A kérdéses parancs tehát nálad:
ActiveWorkbook.SaveAs Filename:= _ "C:\Users\.....\Desktop\Partnerek_Teszt.csv", FileFormat:=xlCSV, _ CreateBackup:=False, Local:=True
Imre
Szia!
Azt képzelem, egy rekord feltöltése úgy történne, hogy a 4-5 legördülő listából ki kell választani az értékeket (ezek adják a rekordot), majd valami eseményre (pl gomb) hozzáíródnak egy létező tartomány végéhez.
De bármilyen másik működést választanánk, elsőre azt gondolom, hogy ezt makró nélkül nem nagyon lehet megcsinálni. Hiszen az alsó táblázat aljára az újonnan kiválasztott adatok valami esemény hatására kerülnek.
Az én tudásom alapján nem tudnék olyan megoldást csinálni pusztán hivatkozásokkal, hogy ha kiválasztok egy menüből egy elemet, az menjen mondjuk C8-ba, majd ha még egyszer legördítem, és kiválasztok egy másikat, akkor az meg menjen a C9-be, és így tovább.
Imre
Szia!
Ebben az esetben nem elég az „Ismétlődő értékek” szabály, mart az valóban nem nézi az előfordulások számát.
Ha az is fontos, hogy hányszor ismétlődik, akkor képlettel kell szabályt alkotni.Külön szabály a 2x ismétlődőkre, és külön az annál többször ismétlődőkre, ha elég ez a szétválasztás.
De lehetne 2-3-4-5- stb.. darabonként külön-külön szabályt csinálni.jelen esetben a következőt kell csinálnod:
1. Kijelölöd az egész tartományt, azaz mindkét oldalt
2. Töröld a feltételes formázást belőle, de maradjon kijelölve
3. Új szabály->Formázandó cellák kijelölése képlettel
4. Képlet:=DARABTELI($A$1:$U$10;A1)=2
-> Ehhez megadsz egy formátumot
5. Maradjon kijelölve, és adj hozzá még egy szabályt képlettel
6. A képlet:=DARABTELI($A$1:$U$10;A1)=3
-> Ehhez megadsz egy másik formátumot.
7. készFigyelj arra, hogy a DARABTELI képletben az első argumentum a teljes tartomámy fixálva, a második argumentum pedig a tartomány első cellája dollárjel nélkül (F4-el tudod módosítani)
Így minden kijelölt cellára megcsinálja az ellenőrzést.Ha 3-nál is többször előfordulhat egy érték, akkor arra is mind hozzáadhatsz egy új szabályt.
Ha 3 előfordulás után már nem számít, csak színezze, akkor a második képletben a relációs jel >= legyen.
Jelezz vissza, hogy sikerült-e!
Imre
Bocs, közben lemaradtam.
Azt hiszem értem mit szeretnél csinálni: Van egy olyan cellád, ami Merged, azaz összevont, több soros.
Ehhez a konkrét cellához igazítanád a sort?ha igen, nézd meg ezt:
https://www.thespreadsheetguru.com/blog/2014/2/21/why-cant-my-row-height-automatically-adjustImre
Szia!
Eddig mit tettél az ügy érdekében?
Mi okoz problémát?Imre
Szia!
Megtetszett nekem ez a probléma, ezért írtam róla egy egész cikket.
http://excel-bazis.hu/tutorial/dinamikus-nevtartomany-keplettel
És ez most Neked köszönhető!
Imre
Szia Anikó!
Jól látod, ez Excel probléma. Az a gond, hogy a CSV eredetileg sima ASCII kódoláshoz lett kitalálva, amerikában, ahol nincsenek speciális karakterek.
Ezen korlát miatt vezették be az UTF (Unicode) kódolást.
Az Excel viszont nem tud UTF kódolt csv-t menteni.(Mondjuk az ö és ű betűkkel nem kellene problémának lennie.)
Lehet, hogy a fájl eredetileg másként van kódolva?A mentés másként-ben van egy ‘Unicode text’mentési lehetőség, ami jó lenne, tehát elvileg megmaradnak a spec karakterek, de cserébe viszont TAB delimitert tesz a text fájlba.
Egyik lehetőség, hogy elmented makróval ilyen TAB delimitált txt-be, majd kinyitod notepad-el, és kicseréled a TAB-okat pontosvesszőre, elmented Unicode-ban.
Ez elég béna, és akárki nem is tudja megcsinálni.Másik lehetőség lehet, hogy az adatokat cellánkét, soronként kell egy új fájlba menteni.
Ez nem egy sima mentés másként, hanem le kell programozni, és úgy menteni a végén.Ezt találtam:
http://stackoverflow.com/questions/2524703/save-text-file-utf-8-encoded-with-vbaEzt esetleg még megpróbálhatod:
http://superuser.com/questions/466267/excel-destroying-special-character-when-saved-as-csvImre
-
A hozzászólás módosításra került: 8 years, 1 month telt el-
horvimi.
Én nagyjából ezt az algoritmust állítanám fel.
—————————————–'Első cella 'ciklus amíg nem üres az akt. cella ' s = akt. sor értéke ' ciklus amíg a ugyanaz aszöveg ' következő cella ' s = s + akt. sor értéke ' ciklus vége ' új sor beszúrás ' új sorba: "Összesen:" és mellé s ' következő cella 'ciklus vége
Imre
Szia!
Tehát ha a csoportok ismétlődhetnek, és valóban azt szeretnéd látni, amit leírtál a példában, akkor valóban makrót kell írni rá.
Ha soha nem programoztál, akkor ez egy kicsit nehéz lesz első feladatnak.
Hol tartasz makróprogramozásban?
Nyilván a feltételes formázás a legegyszerűbb.
Azokat a sorokat, ahol a „Jelzés a lejáratról” oszlopban kisebb vagy egyenlő dátum van, mint a mai nap, beszínezi.Az email küldéshez sokkal összetettebb dolgot kell csinálni:
Makrót kell írni, ami az előzőekben leírt feltételt megvizsgálja soronként, és ha teljesül küldd egy emailt (kinek is?)
Az illetőnek, vagy neked?
Problémák ezzel:
1. makrót kell írni, emiatt makrós lesz a fájl. Ez még megoldható, hogy a makró és az adat ne egy munkafüzetben legyen.
2. Figyelni kell, hogy kinek küldtünk már emailt, hogy ne küldözgessünk naponta figyelmeztetést. Erre be lehet vezetni egy külön oszlopot, amit a makró tölt ki.
3. Mivel küldjük az email-t? Össze kell lőni az Excel VBA-t és a használt levelező klienst
– Outlook? (Ez OK, ha van beállítva és működik, azaz tudsz Outlook-kal levelet küldeni) a többi már nem lesz olyan egyszerű
– gmail?
– egyéb?4. Mi az email szövege? Ez is nyilván változó, legalább a lejárat dátuma változik
Szóval a makrós email-es megoldás jóval összetettebb.
Ha viszont a feltételes formázásos dolog vége mindenképpen az lenne, hogy a megjelöltekre szűrsz és kézzel email-t írogatsz nekik, akkor érdemes makró irányba elmenni.
Ezek persze még hátra vannak, hogy elment-e a levél, megkapta-e a címzett, elég-e egyszer értesíteni, stb…
Ez más síkú problémaHa egyáltalán nincs makró ismereted, akkor ez nem lesz könnyű út.
Válassz!
Szia!
Mégis hogy gondolod a jelzést?
Színezze be a lejárathoz közeli dátumokat? Vagy az egész sort?Küldjön email-t?
Alert ablakban sorolja fel őket?
Csilingeljen? 🙂Külön oszlopban vannak a lejárati dátumok?
Imre
Szia!
Ha neked megfelelően működik, akkor használhatod úgy, ahogy felveszi a rögzítő.
De nem baj, ha a rögzítő féle struktúrált hivatkozást és a listobject megoldást is ismered egy-egy szituációban.Az anyagot elküldöm email-ben.
Imre
Szia!
Ez „sajnos” így működik by design.
Emiatt nekem is elég sokat kellett utánajárnom, mit hogy kell csinálni, ha Listobject típusú műveleteket akarok csinálni.A VBA tanfolyamon szoktam adni egy doksit, amiben összefoglalom a ListObject típusú műveleteket.
Van jó néhány oldal, ami ezzel foglalkozik, gondolom már rájuk találtál.Itt van például egy remek darab.
Imre
Szia!
Az a helyzet, hogy ilyen esetben azt szoktuk csinálni, hogy dinamikus névtartományokat hozunk létre a listaforrásokból. Ennek legegyszerűbb módja, ha táblázattá alakítjuk, és a belsejét elnevezzük, majd ezt a nevet adjuk meg listaforrásként.
A lépések:
1. csinálsz egy fejlécet a listának
2. beírsz pár elemet egymás alá
3. kijelölöd az egyiket
4. Beszúrás->Táblázat-> OK
5. Kijelölöd az adatokat fejléc nélkül
6. Képletek->Névkezelő (A táblázat már benne lesz)
7. Új…
8. Adsz neki egy nevet, lehetőleg egy szóból
9. Az adatérvényesítési szabályként a lista adatforrása: =névEzek után a listák végére új elemet írva, a táblázatok és vele együtt a név automatikusan kiterjed és az új elemek megjelennek a legördülő menüben.
Ezt csináld meg a másikra is.
Visszatöltöttem neked a megoldást.
Imre
-
A hozzászólás módosításra került: 8 years, 2 months telt el-
horvimi.
Attachments:
You must be logged in to view attached files.Nézet menü->Elrendezés -> Mozaik (Vízszintes vagy függőlege)s. Ha egymás mellé akarod, akkor vízszintes.
Ez az éppen nyitva lévő munkafüzeteket egymás mellé rendezi úgy, hogy fele-fele arányban kitöltsék a képernyőt.A Ctrl+TAB kombinációval vagy kattintással tudsz váltani közöttük.
Imre
Szia!
Nézd meg a feladatkezelőben, hogy az Excel esetleg nem fut-e két példányban.
A folyamatok között keresd, van-e két Excel.EXE?Valószínűleg ez a baj, azaz két példányban fut az Excel, és a forrás, illetve a cél munkafüzet külön példányokhoz tartozik.
Próbáld meg mindkettőt a Fájl->Megnyirtás paranccsal megnyitni a dupla kattintós megynitás helyett.Jelez vissza, hogy mi lett!
imre
-
A hozzászólás módosításra került: 8 years, 2 months telt el-
horvimi.
Szia!
Ezt így, ahogy leírtad, nem nagyon lehet megcsinálni, esetleg makróval, de van hasonló dolog.
Ki lehet jelölni területeket előre, és mindegyikhez lehet külön-külön jelszót rendelni.
Ha ezután levéded az egész munkalapot jelszó nélkül, akkor az egyes területeket külön-külön csak a hozzájuk rendelt jelszó beírása után lehet szerkeszteni.Magyar Excelben a Korrektúra lapon találsz egy Tartományok szerkesztésének engedélyezése gomb.
Ezután egymás után megadhatod a területeket és a jelszavakat.Segítség ehhez angolul
https://www.myonlinetraininghub.com/excel-protect-ranges-with-different-passwordsTehát neked (vagy a munkafüzet tulajdonosának) kell előre definiált sorokat egyesével felvenni, és jelszót adni hozzá.
Ez jó lehet neked?
Imre
-
A hozzászólás módosításra került: 8 years, 2 months telt el-
horvimi.
Az 1900.01.01-nél kisebb dátumokat nem kezeli dátumként az Excel.
Ez okozhat problémát.A forrás adatban miért vannak 1900-as dátumok?
Valami különbség képlettel számolódik a repülési idő?lehet, h ott nem dátum formátumban kellene számolni, hanem rendesen kiszámolni percben az értékeket.
A különbséget szorozni 24*60-al, kerekíteni és számmá formázni. Utóbbi nem lényeges.Imre
A lekérdezés8.jpg-ben azt látom, hogy a „Repült idő” oszlopban 1899-es dátum-idő értékek vannak.
Ez a problémás oszlop?
És ez nem okozhatja a problémát?Különben horvath.imre@pentaschool.hu a címem
Imre
Na ok, most látom mit csinálsz.
Ez, amit újnak nevezel a PowerQuery beépülő modul.
2016-ba be van építve alapból az Adatok fülön. Most éppen ezt tanulmányozom. Elég ÁLLAT!De megvan a jó öreg MS Query is, csak egy kicsit balra.
tehát NE az „Új lekérdezés” gombbal indulj, hanem az Adatok lapon az első nagy gombbal, a „Külső adatok…” a mi barátunk.
Itt meglesz minden, ami a régi MS Query-hez kell.A forrás változtatást MS Query-hez makróval lehet megcsinálni valóban a leginkább felhasználóbarát módon.
Ehhez segítség:
http://www.excelforum.com/excel-general/390063-ms-query-data-source-change.htmlImre
Különben a PowerQuery nagyon klassz, és ott is lehet Paraméter táblát csinálni, de nem annyira egyszerű, mint az MS Query-ben
Ha ragaszkodnál ehhez, akkor itt egy kis segítség:
https://blog.oraylis.de/2013/05/using-dynamic-parameter-values-in-power-query-queries/Szia!
Egy kicsit eljátszogattam vele, bár nem nagyon szoktam MS Query-t használni, legalább is nagyon rég jött szembe, Most újra megbizonyosodtam, hogy nagyszerű eszköz.
Paraméteres lekérdezés
————————–
Azt találtam a neten, és nekem bevált, ha SQL nézetben a Where feltételben az érték helyére egy kérdőjelet írtam.
A Query frissítésekor vagy futtatásakor kérdezi a paraméter értékét. Gondolom azt tudod, hogy ilyenkor megadható egy cella, ahonnan a paramétert vegye, sőt, megadható, hogy mindig innen vegye, vagy frissüljön a lekérdezés, ha változik a paraméter cella értéke.Kapcsolati útvonal
——————-
Ezt pedig ki lehet exportálni egy *.odc nevű fájlba. Ez XML formátumú, és tartalmazza a kapcsolat tulajdonságait, így a kapcsolat nevét és az útvonalat is.
Adatok->Kapcsolatok->Tulajdonságok->Definíció fül->Kapcsolatfájl ExportálásaÚj kapcsolatkor pedig be lehet importálni.
Tehát ha import előtt módosítod egy sima szerkesztővel, akkor az új gépen már a módosított útvonalon fogja keresni.
Ez két lépéses buli
1. Adatok->kapcsolatok->Hozzáadás… ->Kitallózod a módosított kapcsolati fájlt
2. Üres cella (munkalap)->Adatok->Meglévő kapcsolatok->KiválasztodErre gondoltál?
Imre
-
A hozzászólás módosításra került: 8 years, 3 months telt el-
horvimi.
Szia!
Találtam két oldalt, amelyeken lévő infók alapján készítette két makrót, ami UDF-ként is használható.
http://www.baanboard.com/baanboard/showthread.php?t=66577
A kínai karakterek UDF kódolásúak, nem ASCII karakterek, a kódjuk negatív.
Ez igaz lehet a Koreai, Arab, stb karakterekre is, nem teszteltem.A megoldást két oszlopba tettem, mindkettő másik függvényt használ.
Az első megszámolja, hogy hány un. non-ascii karakter van a B oszlopban.
Itt vannak olyan sorok, ahol ez 1-et ad, de a szövegben nem kínai, hanem más, pl.görög betű van.Neked szerintem a második oszlop lesz jó, ami megmondja, hogy van-e nullánál kisebb kódú karakter a B oszlopban
Szűrj az IGAZ sorokra!megnyitáskor, és mentéskor szólni fog a makrók miatt.
De más megoldást egyelőre nem találtam.Imre
Attachments:
You must be logged in to view attached files.Szia!
Jól értem, hogy a C oszlop utolsó adatának sora+1-től, az A oszlop utolsó adatának soráig kell törölnöd?
lehetnek üres cellák akár a C, akár az A oszlopban?utolso = Cells(Rows.Count, “C”).End(xlUp).Row
Ez csak akkor nem jó, ha valójában a C oszlopban lévő cellák nem üresek, hanem az A oszlop végéig azokban is van valami.
Próbáld ki az isempty() VBA függvénnyel, vagy au ISBLANK() munkalap függvénnyel.Imre
Szia!
Egy darabig elvoltam, mire megértettem amit kérdezel. 🙂
Talán sikerült.A megoldás az ÁTLAGHATÖBB függvény, aminek két feltételt kell adni, ráadásul a feltételeket cellából kell kiolvasni. Nem triviális, de megoldható.
Ha az alsó hatás az E2-ben, a felső határ az F2-ben van, akkor a megoldás ez lesz.=ÁTLAGHATÖBB(C2:C11;B2:B11;">="&E2;B2:B11;"<="&F2)
Visszatöltöttem, és külön fülre tettem a megoldást.
remélem jól értelmeztem a feladatot.
Imre
-
A hozzászólás módosításra került: 8 years, 3 months telt el-
horvimi.
Attachments:
You must be logged in to view attached files.Szia!
Ez nem hangzik túl jól.
Grafikonokban nem vagyok még nagyon otthon, de szívesen megpróbálok segíteni, viszont ehhez kellene egy minta, amit feltöltesz.Imre
Szia!
Hát Igen, ez nem egyszerű dolog.
Makró nélkül nemigen oldható meg.Én ezt csinálnám:
1. Felvennék egy kétoszlopos szótár tartományt. (Magyar és Angol megfelelőik)
2. Felvennék egy tartományt, ahová azoknak a celláknak a címeit írnám, amiket fordítani kell
3. A nyelvválasztó eseménykezelőjébe megírnám azt a makró programot, ami ha változik a nyelvválasztó értéke, és az nem egyezik meg a korábban ott lévővel, akkor a megadott cellákban kicserélgeti az értékeket a szótár alapján.Így az összes, legördülő lista adatforrásaként definiált tartományt csak egyszer kell magadni, de az aktuálisan kiejölt menüpontok lecserélődnek.
érdekes feladat.
Imre
Szia!
Hogy az adatok honnan jöttek, azt nem fogom tudni megmondani.
A technika, amit láttal, az az adott munkalap vagy munkafüzet „Change” eseményéhez rendelt eseménykezelő volt.Ez makróprogramozás téma.
meg lehet mondani az Excelnek, hogy ha megváltozik egy cella értéke, akkor mi történjen.
A Te esetedben megjelenített egy felhasználói űrlapot, amire előtte betöltötte annak az alkatrészben az adatait.
valószínűleg az azonosítója alapján kereste meg egy adatbázisban.
de hogy az mi volt, sé hol volt, azt csak annak a rendszernek atudói tudnák megmondani. Lehet, hogy egy távoli szerverről szedte le real-time.Imre
Kicsit utánanéztem a dolognak. Nem elsőre, de találtam egy Topic-ot, ami ezzel foglalkozik.
Itt vanEddig személyesen nem találkoztam ezzel a problémával, de úgy tűnik létezik.
Valószínűleg Excel 2013 BUG. Megkockáztatom, hogy ezen belül a 64 bites verzió hibázik, mert azzal szoktak bajok lenni.A központi szerver, amit említettél, milyen oprendszert futtat?
Távoli asztallal éred el?
64 bites Excel fut rajta?Nem találtam megoldást a dologra, csak azt, hogy Ne Excel 2013-ban csináld a rendezést.
Magánvéleményként még lenne ötletem, bár inkább érdekes kísérlet, mint valódi ötlet.
Ha a 2013-hoz feltennéd a PowerQuery bővítényt, és azzal olvasnád be az adatokat a rendezetleg táblázatból, és a PowerQuery-vel rendeztetnéd. Kíváncsi lennék az eredményre.Imre
Mit értesz azon, h nem megy?
Tölts fel mintát!Elvileg úgy van, hogy ha az add in-t engedélyezted, akkor az editorban a Project explorer ablakában (Ctrl-R) látszik az add-in, mint egy munkafüzet, vagy mint a PERSONAL.XLSB.
Ha itt szerkeszted a kódot, akkor menteni is lehet.
Ha itt is azt mondja, hogy read only, akkor még az lehet, hogy a fájl maga írásvédett lett valahogy.
Keresd meg a fájlrendszerben, és jobb klikk/tulajdonságok/írásvédett ki/be. Ezalatt természetesen ne fusson az Excel.
Hogy sikerült?
Imre
Szia!
Itt a javítás. Azt vizsgálja, hogy a „Total” szó mellett kettővel jobbra lévő cella üres-e.
Ha igen, akkor csak egy oszlop van, különben a szokásos.
Kipróbáltam, megcsinálta.Imre
Attachments:
You must be logged in to view attached files.Az a baj, hogy nem az oszlopokra hivatkozik a képlet, hanem csak a fejléc celláira.
Ez van ott most:
=COUNTIFS(Táblázat1[[#Headers];[1)Neme:]];$A11;Táblázat1[[#Headers];[7)Hallott már reform ételeket értékesítő éttermekről? (egészséges ételeket értékesítő éttermek)]];B$2)
Ennek kellene lennie:
=COUNTIFS(Táblázat1[1)Neme:];$A11;Táblázat1[7)Hallott már reform ételeket értékesítő éttermekről? (egészséges ételeket értékesítő éttermek)];B$2)
Máris kijön az 57-es eredmény
Ha jól látom, csak azt próbálgatjátok, h oszlop címzés helyett hogy lehetne struktúrált hivatkozással, táblázatban.
Az a baj, hogy ha egy struktúrált hivatkozást elmásolsz jobbra, akkor az oszlopok követni fogják a másolást. Tehát nem olyan egyszerű lekötni az oszlopokat.
Van rá megoldás, de nem túl triviális.Imre
Nem értem pontosan mit kérdezel, de a megtalált szövegrészt kicseréli arra, ami a párja a segédtáblában. Szóközökkel nem foglalkozik.
Legegyszerűbb,ha kipróbálsz mindenféle esetet, és ha kérdés merül fel, akkor szólj.
Legyen minta munkafüzet, amiben próbálkozol.Imre
Jó helyre tetted 🙂
Úgy működik, mint egy Excel munkalap függvény, tehát egy üres cellába állsz, és utána
Egyik lehetőség, hogy:
1. megnyomod az fx gombot a függvény beillesztéséhez
2. kategória: felhesználói
3. Ott kiválasztod ezt a függvényt
4. kattintgatással megadod a paramétereket úgy, ahogy a fenti képen csatoltam.Másik, gyorsabb lehetőség
1. Beírod, hogy: =subst_multiple(
2. fx vagy Ctrl+A
3. Megadod a paramétereketha megvan egy cella, akkor lehúzhatod az oszlopban, ha a módosítandó szövegeid oszlopban vannak.
FONTOS Info: A cserélendő listának egyedinek kell lennie. Ha lenne két vagy több olyan, amik ugyanúgy kezdődnek, vagy részben tartalmazzák egymást, akkor nem biztos, hogy jó cserét csinál.
Ha ilyenbe ütköznél, akkor kicsit módosítani kell a függvényt, hogy az első cserénél ugorjon ki a ciklusból, illetve a cserélendőket hosszuk szerint növekvőbe kell rendezni.
Meg még lehet vele egyéb gond is, ez a használat során fog kiderülni.
Kezdetnek biztos jó lesz.???
Imre
Szia!
Én azt csinálnám, hogy először cserével lecserélnék minden sortörést valami olyan karakterre, ami nem szokott előfordulni a szövegekben. Pl. csillag (*)
Ezután szövegből oszlopokkal már szétdobhatod egymás mellé.Az Alt+ENTER-nek a Ctrl+J a kódja, ha keresés-cserében gondolkodunk.
Ez jó lehet?
Imre
Szia!
ha össze tudsz rakni egy két oszlopos megfeleltetési táblát, hogy mit mire kell cserélni, akkor abból már lehetne dolgozni.
Összedobtam neked egy UDF-et.
Egy külön munkafüzetben tedd egy modulba, majd mentsd el.
A munkafüzet legyen nyitva, úgy tudod használni.Function subst_multiple(originalstring As String, findstrings As Range, subststrings As Range) As String Dim f As String Dim r As String Dim i As Long If findstrings.Rows.Count = subststrings.Rows.Count Then For i = 1 To findstrings.Rows.Count f = findstrings.Cells(i) r = subststrings.Cells(i) If InStr(originalstring, f) <> 0 Then originalstring = Replace(originalstring, f, r) End If Next subst_multiple = originalstring Else subst_multiple = "#Find and replace arrays must have the same size!" End If End Function
Majd szólj, hogy milyen…
Imre
-
A hozzászólás módosításra került: 8 years, 4 months telt el-
horvimi.
Szia!
Kicsit átalakítottam a képletet, hogy szövegre működjön.
Mindkettőre egyszerre nem tud, mert teljesen más képlet kellett szövegre.Szövegtöredéket keres a nevekben, nem kell, illetve nem szabad használni a joker karaktereket, azt nem érti, de nem is kell.
Ezt kerested?
Imre
Attachments:
You must be logged in to view attached files.Szia!
Ritkán csinálok ilyet, de volt kedvem hozzá.
Mellékesen szörnyű a formátum, részvétem…Szóval azt találtam ki, hogy végigkeresem az első oszlopot a „Totál” szavakra.
Az első kivételével minden „Totál-t” tartalmazó cella mellett kezdődik az átmásolandó tartomány, és a vége 12 sorral feljebb, annak a sornak a végén van.
Tehát ha „item” nevű range változóban megvan, hogy hol találta a „Totál” szót, akkor a másolandó tartomány így fogható meg:Set current_range = Range(Item.Offset(0, 1), Item.Offset(-12, 1).End(xlToRight))
Ezt másolni kell a tetején lévő folymatosan bővülő fejléc vége utánhoz.
Kb ennyi az algoritmus.
Az összeillesztésekhez tettem egy függőleges vonalat. ha nem kell, kiveheted.
Feltöltöttem
Ha OK, jössz egy sörrel.
Imre
Attachments:
You must be logged in to view attached files.Leprogramozni nem lesz időm.
Ha feltöltesz egy konkrét mintát, és ugyanabban a fájlban egy másik lapon kézzel egymás mögé másolva, hogy mit szeretnél látni megoldásnak, akkor talán jobban megértem a problémát, és tudok segíteni az algoritmusban.
Az összemásolt verzióban esetleg színezhetnéd a különböző forrásból érkezett darabokat.
imre
Galk!
Ez így rendben van, és ha Zsuzsa erre gondolt, akkor OK.
Én úgy értettem, hogy egy hónap adatait szeretné látni csak.
Tehát az augusztusi forgalom, és mellette augusztusig az összes.
Azért gondoltam ezt, mert a csatolt megoldás haladó szinten egy alap dolognak számítHa PIVOT-ban szűrsz egy hónapra, akkor a göngyölített is csak az egy látható értéket mutatja, aminek göngyölített összege ugyanaz lesz.
De lehet, hogy túlgondoltam.
ha Zsuzsa még ránéz, majd megmondja, mi volt a feladat.
Nagyon köszi!
Imre
Szia!
Ha az egymás mellé másolt adatok, és a végén a képletek is kellenek, akkor ezt makróval lehet megcsinálni. Feltéve, hogy mindig ugyanott vannak a forrástáblák, vagy könnyen megtalálhatók.
Ha csak az eredmény kell, ami tartalmazzon az azonos pozícióban lévő cellák összegét, akkor egyszerű adatösszesítésről (konszolidáció) van szó, amihez az Excelnek van beépített eszköze.
Kipróbáltam az általad küldött mintán, teljesen rendben van. (Adatok lap -> Összesítés parancs)Azt írja, hogy minden forrásnak és az eredménynek is külön munkalapon kel lennie, de ez nem igaz.
Kb itt a munkamenet:
1. A forrás táblákat tartalmazó lapon kijelölsz egy cellát, ahová az összesített adatokat szeretnéd majd tenni (bal felső sarok lesz itt)
2. Adatok->Összesítés (Egy párbeszéd jön)
3. A tetején megadod, hogy melyik függvénnyel
4. A Hivatkozásnál pedig kijelölsz egy forrást úgy, hogy a fejléc nincs benne (mert az változik), majd megnyomod a Hozzáadás gombot
5. Az előbbit megismétled annyiszor, ahány forrásod van
6. Végül megadod, h a feliratokat vegye a bal oszlopból (ezek mindenhol ugyanazok)
7. EnnyiAz eredmények értékként kerülnek a helyükre, de lehet csatolást kérni, így ha a források változnának, az eredmény automatikusan jön.
Ez változó számú forrásnál nem annyira életszerű.Imre
-
A hozzászólás módosításra került: 8 years, 5 months telt el-
horvimi.
Ezt egy PIVOT-ban sztem nem lehet megcsinálni.
Én azt tenném, hoyg ha megvan a havi bontású PIVOT, akkor mellette egy oszlopban képlettel kiszámolnám az addig a hónapig összesített adatokat.
Kell egy rész, ami a hónapból előállítja az adott hónap utolsó napját, és ezt adnám oda a SZUMHA (SUMIF) függvénynek, hogy adja össze az adott dátumnál korábbiakat.Feltételeztem, hogy az év az ugyanaz. Erre az információra a dátum összeállításában szükség van, vagy kell egy PIVOT oszlop az Évvel.
tölts fel egy mintát a PIVOT-tal, és visszatöltöm mire gondoltam.
Eggyel persze jobb lenne, ha megpróbálnád ez alapján megoldani.
Imre
Gyerekek!
A színezés sima feltételes formázás.
Ha egyik oszlopban lévő >= mint a másik oszlopban lévő, akkor színezze.Imre
Szia!
Ugyan nem egy képlettel, hanem néhnánnyal, de megoldottam.
A megoldást a Munka2 N oszlopától találod. A konkrétan keresett eredmény az S oszlopban.Ezért mondjuk vállon veregetem magam.
-
A hozzászólás módosításra került: 8 years, 5 months telt el-
horvimi.
Attachments:
You must be logged in to view attached files.Nem tudom mennyire érzékelted, de az a videó az én videóm.
Még egyszer mondom, hogy a probléma ott van,m hogy ha van két egyforma a Top 5-ben.Feltöltöm neked amit csináltam.
Imre
Attachments:
You must be logged in to view attached files.Kitaláltam rá valamit, de csak akkor működik jól, ha az 5-nél nagyobb Top 5-ben nincsenek egyforma értékek.
ha ez nem biztos, h teljesül, akkor hirtelen nincs rá ötletem azon kívül, hogy leprogramozni.
???
Szia!
Tölts fel egy mintafájlt!
Legyenek benne teszt adatok, és egy oszlopba konstansként beírva, hogy mit szeretnél eredményként látni!Imre
Szia!
Csak azt felejtetted el leírni, hogy most hogyan számoltok.
– Mit jelentenek a Munka1-en az első sorban az egy cellába írt, vesszővel elválasztott értékek?
– A Munka2 HUF oszlopána számítási menete kellene saját szöveggel leírva, mint egy munkafolyamat.Imre
Ha tömbökkel foglalkozol és keveset tudsz róluk akkor nézz át egy összefoglalót pl. itt
http://www.cpearson.com/excel/vbaarrays.htmA konkrét esetben a tömb számossága vagy elemszáma:
count=Ubound(nevek)
És ahogy a fenti válaszban írtam, az elvileg egy oszlopos dinamikus tömböt is két dimenziósként kezeli, aminek az oszlop része mindig 1-es.
Tehát a nevek(i) nem lesz jó, de jó lesz:nevek(i,1)
Imre
-
A hozzászólás módosításra került: 8 years, 5 months telt el-
horvimi.
Szia!
Én ezt találtam erre. Kipróbáltam, nekem működött
Előtte csináltam egy „nevek” nevű tömbkonstanst a névkezelőbe.={"Kovács András";"Tóth Zsuzsanna";"Kovács Béla";"Kiss József"}
A névkezelőből kolvasni egy töb elemeit az Evaluate függvénnyel lehet, ami a szögletes zárójel is egyben.
Sub get_array_from_named_range() Dim arr arr = [nevek] MsgBox (arr(1, 1)) MsgBox (arr(2, 1)) pos = WorksheetFunction.Match("Kovács András", arr, 0) MsgBox pos End Sub
Definiáltam egy dinamikus tömböt, majd beleolvastam a „nevek” tartományt
A tömb egy oszlopos lett, és az elemek egymás alatt, de sor,oszlop indexxel érhetők el úgy, hogy az oszlop index mindig 1-es
Tehát kiolvasom egy tömbváltozóba a névkonstans tömböt, majd abból kiolvasom az első sor első oszlop elemét, majd a második sor első elemét.A tömbben keresni lehet a megvalósított munkalapfügvényekkel is.
Ezt csinálom a második részben a match függvényel.erre gondoltál?
Imi
Na, erre nem számítottam.
Hát…Le tudnám programozni makróval, de képletes megoldásom most nincs erre, bocsi
Azért még megnézem, amikor nem éjjel fél kettő van…Imre
Ez most már kihívás nekem. Mármint, hogy összehozzam, hogy értsük egymást.
Az alapján, amit küldtél, nem lettem okosabb.
A „melyik sorban van találat…” értelmezhető úgy, hogy hányadik sor, és úgy is, hogy írjuk ki a sor adatait.
Stratégiát váltok, konkrétabban kérdezek vissza.
Ez a minta adat:Tól Ig 100 105 106 110 111 115
Mondjuk keresed a 101-et
MIT SZERETNÉL EREDMÉNYKÉNT KAPNI? (Látni az eredmény cellában)
——————————————————
A) 100 – 105 (Egy cellában így beírva, ami ugye szöveg lesz)
B) 100, 105 (Két egymás melletti cellában)
C) 105
D) 100, 101, 102, 103, 104, 105 (Egy cellában)
E) 100, 101, 102, 103, 104, 105 (Egymás melletti cellában)
F) 1 (mert az első sorban lévő 100 és 105 közé esik)Egyéb, éspedig:
???
-
A hozzászólás módosításra került: 8 years, 5 months telt el-
horvimi.
Ne haragudj, de tényleg nem értem.
Azt nem értem, hogy mit szeretnél eredményül látni.
Ilyenkor a legjobb, ha feltöltesz egy kis mintafájlt.
Ebben van:
Egy tól és egy ig oszlop
Gondolom egy olyan oszlop, ahol azok a számok vannak, amiket keresel
Engem az érdekel, hogy mi van az eredmény oszlopban, és az hol van? (Gondolom a keresendő számok mellett.)
És végül mi legyen akkor, ha a keresendő számot egyik intervallumban sem találta meg (ha lehet ilyen)
Ezt kérlek, kézzel egyszerűen írd be néhány sor esetén.Kérlek, még egy kicsit pontosíts:
– A két érték közötti összes szám kell?
– Ha igen, hogy jelenjenek meg? Egy cellában, vagy …?
– Ezek egész számok?
– A tól és az ig soha nem egyenlő?-
A hozzászólás módosításra került: 8 years, 5 months telt el-
horvimi.
Szia!
És mit szeretnél eredményül kapni?
Nem értem mi az a DIR nélkül.
DE:
1. A Dir simán az aktuális munkakönyvtárban keres.
Beállítottad? Én nem írtam bele a mintába2. Ha van olyan fájl a forrás mappában, ami a mintának megfelel, akkor az f értéke a fájl neve lesz
Próbáld ki az Immediate ablakban.
– Állítsd be chdir paranccsal a munkamappát oda, ahol a fájl van (ahol naponta cserélődik)
– Ird be ezt a parancsot: ?Dir(„valami_2016-08-26_utem_2-DOC*.txt”) (Nyilván a fájlnevet értelemszerűen írd)Erre vissza kell adnia a fájl nevét. valójában az első olyat adja vissza, ami illeszkedik a mintára. Tehát a „*” előtti rész állandó, a DOC utáni bármi, és txt a kiterjesztése.
A fenti kódot én lefuttattam, simán működött.
Szerintem nem jó helyen keres.Imre
Szia!
Ez egy klasszikus UNPIVOTING feladat.
A hőskorban erre makrót kellett írni.Aztán megjelent néhány Excel ADD-IN, ami megcsinálja, de nem találtam eddig ingyenest.
Viszont az új sláger, a PowerQuery ingyens add-in.Egy ideje már nézegetem. Excel 2010-hez és 2013-hoz letölthető, Excel 2016-ba már bele van építve.
Kb 1 perc volt, míg a problémádat megoldottamm vele. Konkrétan van ilyen menüpontja.
Egysezrűen zseniális.Itt egy leírás, hogyan kell csinálni.
Visszatöltöm a megoldást. Csak 1000 rekordot hagytam benne, hogy fel tudjam tölteni.
Imre
Attachments:
You must be logged in to view attached files.Szia!
Itt azt látom problémának, hogy a másolásnál a célfájl esetén szinte biztosan nme használható joker karakter. De az is lehet, hogy a forrásfájl esetében sem.
A dátum formát különben egyszerűbben is megadhatod:
format(date,"yyyy-mm-dd")
A másik kérdés, hogy a fenti módszerrel biztosan 1 db fájlra tudod-e szűkíteni a talált fájliok számát. A Filecopy csak egy fájlt tud egy időben másolni.
Ha a válasz IGEN, akkor Én azt csinálnám, hogy egy DIR paranccsal, * joker karakterel lekérném a fájl valódi nevét, azután már másolhatom.Sub masol() mainap = Format(Date, "yyyy-mm-dd") forrasmappa = "c:\ahol_a_fajl_van\" celmappa = "c:\ahova_masolni_akarod\" f = Dir("valami_" & mainap & "_utem_2-DOC*.txt") FileCopy forrasmappa & f, celmappa & f End Sub
Ez alapján sikerül?
Imre
Szia!
Az Excelben a szűrések nem dinamikusak, legyen az auto vagy haladó szűrés. Az új adatok esetén vagy adatmódosítás esetén újra kell futtatni a szűrést.
A Te problémád ez alapján úgy oldható meg, hogy az alaptábla módosítása esetén lefut egy eseménykezelő makró, ami szűri a kékeket, és kimásolja a kék munkalapra, majd szűri a pirosakat és másolja a piros munkalapra.
A kék és piros lapok korábbi tartalmait persze előbb törli.
Módosításnak számít új adat bevitele vagy meglévő módosítása.Ennek a módszernek 2 problémája van:
1. Minden cella módosításakor lefut. Ez akkor probléma, ha gyakran módosítasz a fő táblázatban, és sok adatod van.
2. A makrókat szeretik kiküszöbölni. Ez jogos is, csak akkor használjunk makrókat, ha anélkül nem oldható meg egy feladat.űMAKRÓMENTES MEGOLDÁS?
Hát, ki lehet próbálni valamit, amit egy korábbi cikkben írtam le.
Dinamikus szűrés tömbképlettel.
Ez a módszer sok adat esetén várhatóan lassú lesz, két szűrt munkalap esetén pedig pláne.
De néhány száz sorig egy jobb gépen elviselhető lehet a sebessége.Kicsit hozzá kell igazítani a Te problémádhoz, de megoldás lehet.
Próbáld meg!
Szia!
Hát ez egy klasszikus esete annak a helyzetnek, amikor adatbázis-kezelés feladatra akarunk Excel-t használni. Különben érthető, ha nincs adatbázis-kezelés ismeretünk, e van egy kevés józan eszünk, akkor egész jó adatmodelleket lehet Excel-ben is felállítani.
Az már egy jó indítás, hogy külön táblákban gondolkodsz, bár hogy miket tárolsz külön táblákban, azt átgondolnám, de talán így is lehet.
Ahogy Én csinálnám:
1. Van egy törzs tábla a termékeknek, ahol az oszlopok:
Termék_kód (cikkszám), Terméknév, Termékcsoport, Listaár2. van egy vevő törzs, ahol az oszlopok
Vevő_kód, vevőnév, amit még akarsz3. Engedmény tábla, ahol az oszlopok
Vevőkód, termékcsoport, kedvezmény mértékeEz a harmadik tábla kapcsolja össze a vevőket és a termékeket.
Ha jól értem, akkor az lenne a lényeg, hogy vevőnként tudj árlistát generálni, a nekik érvényes árengedményekkel számolva. A kedvezményt pedig nem termékenként, hanem termékcsoportonként adnád nekik.A listát egy db SQL lekérdezéssel meg lehet kapni a fenti modellből.
De szerintem Függvényekkel meg lehet csinálni Excel-ben is.
Azt csinálnám, hogy
– elsőként kitölteném a fenti 3 táblát
– Kezdenék egy negyedik táblát, ez lesz az eredmény tábla
– Ennek első oszlopai a cikkszámok (esetleg a terméknevek, ha kell), termékcsoportok és a listaár. Tulajdoképpen a terméktörzs tábla másolata. Csinálhatod copy-paste-el vagy hivatkozásos másolással.
– A negyedik oszlopban végig annak a vevőnek a kódja, akinek az árlistát csinálod
– A következő oszlopba a vevőkód és a termékcsoport alapján áthozod az engedmény táblából az adott vevőhöz és termékcsoporthoz tartozó engedményt. Ezt lehet két feltételes FKERES-el, de ebben az esetben lehetne SZUMHATÖBB függvénnyel is.
-Az ötödik oszlopban a listaár és a kedvezmény alapján számolod a kedvezményes árat.Ebből az 5 oszlopból neked csak a cikkszám és a kedvezményes ár kell, de ezt az utolsó lépést a fantáziádra bíznám.
Érthető nagyjából? És egyáltalán erre gondoltál?
Imre
-
A hozzászólás módosításra került: 8 years, 6 months telt el-
horvimi.
OK, feltöltök egy megoldást, ami megmondja, hogy az első munkalapon lévő szó, hányszor szerepel a második munkalap első oszlopában bárhol, akár mondatban is.
Ez egy tömbképlet, ezért ha hozzányúlsz, Ctrl-Shift-Enter-rel kell lezárni.
Hogy lásd a szerkesztőlécen aképlet elején és végén a kapcsos zárójeleket.A B2-be írtam a képletet, utána lehúztam az aljáig.
Ahol nullát kapsz, az a szö nem szerepel sehol a másik munkalapon.
Imre
Attachments:
You must be logged in to view attached files.Szia!
Nekem az még mindig nem világos, hogy mit szeretnél látni.
Ha azt, amit küldtél, azaz az első munkalapon pirossal jelölt szót pirosozzon ki a második munkalap minden előfordulásánál, akkor ehhez meg kell tanulnod programozni. Ez excel cuccokkal nem megoldható.
Ha azt szeretnéd, hogy az első munkalapon azokat a szavakat jelölje, formázza, amik előfordulnak a második munkalap bármely cellájában, akkor az már megoldható egy speciális képlettel és feltételes formázással.
Aztán olyat is lehet, hogy az első munkalapon egy következő oszlopban minden szó mellé írjon egy számot, hogy hány cellában fordul elő a második munkalapon.
Szóval melyik?
Igen, szerintem is a checkbox-ok és a fájlnevek összerendelésénél van a kulcspont.
Tehát amikor készíted a checkboxokat, akkor a .name tulajdonsággal lehetne a nevük a PDF fájl neve is.
.name=Cells(cell, "J").Value
A Copy files makróban pedig végig loopolsz az összes checkboxon, és amelyik be van kapcsolva, az olyan nevű fájlt az adott útvonalról másolod a kívánt helyre.
Sub loop_checkboxes() Dim cb As CheckBox For Each cb In ActiveSheet.CheckBoxes If cb.Value = xlOn Then MsgBox cb.Name 'Ide tehetnéd a másolást End If Next End Sub
Nyilván az útvonalak valahogy összeállnak string összefűzésekből, vagy bárhogy…
Imre
Ha a formázott táblán a TÁBLÁZAT-ot érted, azaz az árnyék verzió egy táblázattá alakított tartomány, akkor a válasz IGEN.
Ebben az esetben csak annyi a feladat, hogy a makró
1. Megnyitja az eredeti fájlt
2. Kijelöli a már kitöltött sorokat (fejléc nélkül)
3. Ctrl-C
4. Átváltás az árnyék verzióra
5. A fejléc alatti első cellához beillesztés értékkéntEz gyakorlatilag rögzítővel felvehető makró.
Mivel a beillesztett adatmennyiség valószínűleg nagyobb, mint amire ráírja, a táblázat automatikusan ki fog terjedni, és a későbbi oszlopokban lévő esetleges képletek automatikusan ki fognak terjedni az új mérethez.
Ha már működik, akkor csak nevezd el auto_open néven, és akkor a megnyitáskor automatikusan le fog futni mindig.
Szia!
Amiben feltöltesz, legyen eredeti, ami a másolat, legyen árnyék nevű. csak az érthetőség kedvéért.
Felvázolok 3 megoldást
A leggyorsabb, de kissé favágó módszer az lehetne, ha egyszerűen képlettel lemásolod az árnyék munkalapon az eredetit.
Ha az eredeti adataid pl. az ‘Eredeti’ munkalap A1-ben kezdődnek, akkor az árnyék munkalap A1-es cellájába felviszel egy egyenlőség jelet, majd átkattintasz az eredeti munkalap A1 cellájára.
Ezt azután addig másolod jobbra a kitöltő fogantyúval, amíg a fejléc tart. (meg fog jelenni a fejléc másolata.
Majd az egészet másold lefelé addig, amíg nullákat nem kapsz, azaz az eredeti lapon elfogynak a már kitöltött adatok. Ha jó előre lehúzod, azaz sok nullákkal teli sorod legyen, akkor egy darabig nyugodtan töltheted az eredetit, a kitöltött adatok automatikusan meg fognak jelenni ugyanott az árnyék verzióban is, ha azonos munkafüzetben vannak.
Az árnyék verzió lehet másik munkafüzetben is, de ebben az esetben csak akkor jelennek meg automatikusan az árnyék verzióban is az adatok, ha az nyitva van. Különben minden megnyitáskor kérdezni fogja, hogy frissítse-e a külső hivatkozásokat, és IGEN válasz esetén szinkronizálja az árnyék verziót az eredetivel. Ezt a kérdést letilthatjuk, és megmondhatjuk neki, hogy ne kérdezzen, csak automatikusan frissítsen.
——————————————————————————————
Ha ez a megoldás nem felel meg, mert nem képletként, hanem értékként szeretnéd látni az árnyék adatokat is, akkor makrót kell írni az eredeti munkafüzetbe, ami eseményként érzékeli egy cella tartalmának megváltozását.
Tehát ha egy cella értéke megváltozott, akkor az árnyék munkalap ogyanazon cellájába másoljuk át az új értéket. Sima eseménykezelés. Itt is lehetnek külön munkafüzetben, de akkor mindenképpen nyitva kell lennie mindkettőnek az adatbevitel során.
———————————————————————————————–
Ha időben el akarod és tudod különíteni az adatbevitelt és az árnyék lap megnyitását, illetve az eredeti és árnyék verziókat külön munkafüzetben tartanádakkor fordítva kell csinálni, és az árnyék fájlba kell makrót írni, amiben megnyitáskor automatikusan lefut egy makró, ami az eredeti adatokat értékként átmásolja az eredeti munkafüzet megadott lapjáról az árnyék munkafüzet megadott lap megadott tartományába.
És IGEN, az átmásolt oszlopok után lehetnek képlet oszlopok, amiket hozzá lehet húzni az átmásolt tartomány méretéhez.
A makró azt csinálná, hogy megnyitja az eredeti fájlt, majd átmásolja a megadott munkalapon lévő táblázatot az árnyék munkafüzet megadott tartományába.
Ha kell, a képlet oszlopokat hozzá igazítja.
——————————————————————————-
Lehet, hogy kissé hosszadalmasan írtam le, de én ezek közül választanék.Imre
Ha így csináltad ahogy a képeken van, akkor azt a problémát látom, hogy a 3. lépésben, amikor megadod, hogy dátum oszlopról van szó, a formátumnál nem azt kell megadni, hogy milyen formátumot szeretnél, hanem azt, hogy most milyen formátumban van. Neked pedig a dátumaid NHÉ formátumban vannak (21/03/2016)
A képen azt látom, hogy ÉHN-t állítottál be. Ez biztosan nem jó.Ha ez nem oldja meg a problémát, akkor marad a segédoszlop, és a képlet a DÁTUM függvénnyel.
Épp ma készítettem egy új cikket erről. Már csak a Videó van hátra.
Imre
Letöltöttem, kipróbáltam.
Nekem megcsinálja.
Office 365, Excel 2013NHÉ formátumot választottál?
Most látom, hogy a fenti képen hibás formátum van kiválasztva. A te dátumaid a fájlban Nap/Hónap/Év formátumúak, a képen HNÉ látszik, mert elbénáztam.Ja, és a villám kitöltés is működik nálam.
Szia!
Ha Office 365-öt használsz, akkor az 2013 vagy 2016 lesz.
Ebben az esetben delila megoldása mellett létezik egy nagyon egyszerű és gyors megoldás.
1. A rossz dátumok után beszúrsz egy új oszlopot
2. Az első sorba beírod a helyes, magyar dátumot
3. Adatok szalagon a Szövegből oszlopok gomb mellett találsz egy „Villám kitöltés” gombot.
4. Nyomd megÉs van még egy nagyon egyszerű, és minden Excel verzióban működő megoldás, a „Szövegből oszlopk” funkció. Ezzel kapásból, segédoszlop nélkül átalakíthatók a dátumok.
1. Angol dátumok oszlop kijelölése
2. Adatok->Szövegből oszlopok
3. Kétszer Tovább
4. A harmadik lépésben beállítod, hogy Dátum típusú, és kiválasztod a helyes sorrendet. A Te esetedben a NHÉ (Nap/Hónap/Év), mert az angol dátumaid így vannak.
5. A rendeltetési hely alapból az első kijelölt cellára mutat, tehát rá fogja írni az eredeti dátumokra az átalakított verziótMűködik?
Imre
-
A hozzászólás módosításra került: 8 years, 6 months telt el-
horvimi.
Szia!
A felső index megoldható, mert a kettesnek és a hármasnak van felső indexnek megfelelő külön karakter definíciója a betűkészletekben.
Ami biztosan működik:
1. Egy üres cellát válassz
2. Beszúrás szalag->Szimbólum (A szalag végén egy omega jel)
3. Keresd meg a kis felső kettest vagy hármast. A kisbetűk után nem sokkal.
4. Szúrd be a cellába
5. Szerkesztő módban másold ki a kis kettest vagy hármast (Ctrl-C)
6. Egyéni számformánál illeszd be a megfelelő pillanatban: 0,00″m²”;-0,00″m²”Persze a negatív részt csak akkor, ha lehetnk negatív számok is. Ez négyzet vagy köbméternél a való életben elég ritka.
Kipróbáltam, megy.
Neked?
Imre
Szia!
Az összes alakzathoz ugyanazt a makrót kell rendelned, de gondolom ez már megtörtént.
Van a VBA-ban egy
Application.Caller
objektum, Ezzel lehet lekérdezni, hogy mire kattintottak.Próbaként nézd meg ezt:
Sub proba() alakzat_neve = ActiveSheet.Shapes(Application.Caller).Name MsgBox alakzat_neve End Sub
Imre
Szia!
Ez egy klasszikus hiba, szinte mindenki elköveti, amikor egy képletben változót akar használni.
Az a gond, hogy a képlet valójában egy szöveg. Dupla idézőjellel kezdődik és záródik. ha ebben csak így simán beírod a változót, akkor annak a neve, és nem az értéke lesz a képletbe, mint szöveg.
Ezt próbáld:Activecell.FormulaR1C1 = _ "=INDEX('" & fc & ".xls'!C5,MATCH(RC1," & fc & ".xls'!C1,0))"
Ugye külön figyelni kell a szimpla idézőjelekre is.
A módszer lényege, hogy meg kell szakítanod a szöveget azon a helyen, ahová a változó megy. Jelen esetben az INDEX kezdete és a szimpla idézőjel után.
Befűzöd a változót, és tovább folytatod az eredeti stringet.
A változó következő előfordulásakor újból ugyanez a teendő.Imre
Igen, az megoldható, írtam is róla.
Szia!
Ha jól értelmezem, akkor nem munkafüzetről, hanem munkalapról van szó.
Egy munkalapon belül nem lehet ilyet csinálni, ilyen csak Word-ben van.
Olyat lehet, hogy az álló és fekvő részek külön munkalapokon vannak.
A tájolás munkalaponként állítható.
Nyomtatáskor pedig meg kell adni, hogy az egész munkafüzetet nyomtassa.Imre
Szia!
Nagyon köszönjük!
Horváth Imre
A táblázatos verziót számtalanszor csináltam. Most még egyszer kipróbáltam, működik.
Valamit nem jól csináltál szerintem.Miután táblázattá alakítottad, ki kell jelölni az adatokat, és a kijelölést külön elnevezni.
Ez nem lehet ugyanaz a név, mint a táblázaté.A lista adaforrásának a tartománynevet kell adni.
Ha az oszlopos megoldás OK, akkor végül is mindegy.
Imre
Igen van, két lehetőség is
Táblázatos
Ugye az a gond, hogy táblázatnevet (struktúrált hivatkozást) nem lehet adni adatérvényesítési lista adatforrásának. De tartománynevet lehet!
1. Az adatforrást táblázattá alakítod
2. Az adatokat (fejléc nélkül) elnevezed
3. A lista forrásaként ezt írod: =tartmánynévEgész oszlopos
A lista forrásaként az egész oszlopot megadod
Szia!
A minta alapján a feladat egyszerűbb, mint gondoltam. Csak tudni kell hozzá, hogy a feltétel szerinti megszámláló függvények (DARABTELI/COUNTIF, STB..) ismerik a joker karaktereket.
Ha jól értem, azt keresed, hogy egy teljes domain név (www.valami.hu) hányszor szerepel az
„1-organikus-találat” oszlopban, hányszor a „2-organikus-találat” oszlopban, stb…
Nem pontos egyezésre, hanem bárhol.
Ehhez a „*www.valami.hu*” szöveget kell keresni, illetve megszámoltatni.A megoldás tehát csak annyi, hogy a keresendő név elé és utána egy csillagot kell fűzni.
Szóval ha azt keresed, hogy az „F” oszlopban hányszor szerepel a B2-ben lévő domain név bárhol, akkor a képlet:=DARABTELI(F:F;"*"&$B2&"*"
Ha a keresendő domain cellájának oszlopát lerögzíted, és teljes oszlopokban keresel, akkor húzható lesz a képlet.
Visszatöltöttem a fájlt. Erre gondoltál?
Imre
Attachments:
You must be logged in to view attached files.Szia!
Ezt elég trükkösen, de meg lehet csinálni.
ha az F12-ben van az alsó határod, akkor a kritériumhoz ezt kell írni:
=">="&F12
A felső határnál értelemszerűen az E12-re hivatkozol.
Remélem sikerül, majd jelezz vissza!
Imre
-
A hozzászólás módosításra került: 8 years, 8 months telt el-
horvimi.
Szia!
Lenne egy ötletem, tölts fel egy mintát!
Imre
Szia!
Az első feladat félig meddig megoldható makró nélkül, de csak egyszer fog működni minden cégnél.
Ergo ezt is inkább makróval kellene megoldani.
A második probléma viszont csak eseménykezelős makróval oldható meg.Bővebben az első feladat
1. kell egy segédtábla, hogy mely cégnek mi az alapértelmezett fizetési módja.
2. A második legördülő menüben adatforrás az összes lehetséges fizetési mód.
3. Miután az első legördülővel választottál egy céget, ott lesz egy Worksheet_Change esemény, aminek a kezelőjét kell megírni, hogy a (gondolom) mellette lévő cellát töltse ki a segédtábla alapján a céghez rendelt fizetési móddal.Bővebben a második feladat
A második feladat kicsit bonyolultabb. Ugyanis ha törléskor vissza akarod állítani az eredeti képletet, akkor figyelni kell, hogy az új érték üres lett-e, és visszaírni a képletet.
Ha pedig egy egyéb érték, akkor azt benne hagyni.
És persze kiindulásként az eredeti képletnek kell a cellában lennie.Excel VBA eseménykezelésről alapszinten itt olvashatsz
http://www.excel-spreadsheet.com/vba/eventhandling.htmTermészetesen ezen kívül számtalan egyéb forrás található.
Imre
Ez is remek megoldás, köszi!
Hát, nem tudom mi zajlik nálad.
Én Win 10 alatt is használok néha Excel 2013-at, nincs vele gond.Ez teljesen jó, amit írtál, csak a „Sheet” szót többes számba kell tenni.
Tehát
Sheets(“Munka2”).Range(“c78”).Value = Sheets(“Munka2”).Range(“c78”).Value + 1
Imre
Kedves Miklós,
Ha jól értem, akkor neked sem megy a Copy/Paste a jobb gombos menüben?
Nem tudok többet segíteni sajnos. ha a fentiek nem oldják meg, akkor passz.
Az újra telepítés esetleg akkor lehet jó, ha előtte eltávolítod az Office-t.Még annyit, hogy valahol azt olvastam 1-2 éve, hogy a fenti jelszófeltörő algoritmus 2013 verzión már nem működik.
Imre
Szia!
Szóval ezt makróval lehet megcsinálni.
Több megoldás is lehetséges, és többféle gomb is létezik. Űrlap vezérlő és Active-X vezérlő.Leírom az egyik lehetséges megoldást ActiveX vezérlő gombokkal.
1. Kapcsold be a Fejlesztőeszközök (Developer) szalagot
2. Ezen a szalagon a Beszúrás gomb lenyíló menüjében az ActiveX vezérlők közül az első a nyomógomb
Ezzel rajzolj 2 gombot.
3. Az elsőn duplán kattintva, megjelenik a Click esemény kezelője, egyelőre még üresen. Itt A Sub és End sub közé megadhatod, hogy mi történjen, ha megnyomod a gombot.
Ide írd be ezt:
Activesheet.Range("A1").Value=Activesheet.Range("A1").Value+1
4. Csináld meg ugyanezt a másik gombbal is, csak csökkenteni kell, nem növelni.
5. A gombokra írt szöveget úgy tudod módosítani, hogy jobb klikk->Tulajdonságok->Caption sor
6. A gombokat működésbe hozni pedig úgy, hogy a szalagon a Beszúrás mellett van a Tervező mód, amin egy kék vonalzó van, azt kapcsold ki. Ezután kattintásra már gombként működik.
7. Módosítani a tervező gomb bekapcsolásával tudsz.Remélem érthető.
Imre
Hát, igen.
Innentől kezdve már csak makrós megoldás jöhet számításba.
Egy cellában több adat eléggé barkácsolós megoldás.És ha makrós, akkor persze az alap modellt is másképpen kell struktúrálni, nem kell szétszedni annyi kicsi táblára.
Ez tulajdonképpen egy tipikus adatbázis probléma, Access-ben simán megoldható lenne makró nélkül is.Sok sikert,
Imre
Szia!
Itt az lenne a kérdés, hogy ha kiválasztotta a gyártót és a terméket, akkor ahhoz csak egy saját termék tartozhat, vagy többől kellene választani?
Tehát a „kiválasztás lapon a C3-ban már egy konkrét érték lenne, vagy az is legördülő menü?Van most 4 db típus táblázatod. Ezeknek az elemszáma mekkora a valóságban?
Mennyire fog később bővülni?Mindenesetre kitaláltam valamit, csatoltan elküldöm.
Imre
Attachments:
You must be logged in to view attached files.Hát, akkor nem tudom. Windows-on nem ilyen.
Szia!
Nekem úgy tűnik, mintha kihagynál egy lépést a végén
A Manage Rules… ablakban nincs olyan gomb neked, hogy Edit rule…?
Ezt olvasd át:
http://www.contextures.com/excelpivottableconditionalformat.htmlImre
Szia!
Ezt külön kell beállítani a szabály létrehozása után.
1. Kijelölsz egy cellát a PIVOT táblában, ami már felt. szabállyal formázva van
2. Feltételes formázás->Szabályok kezelése…
3. Szabály szerkesztése…
4. A megjelenő párbeszéd tetején a szabály hatókörét lehet állítani.
Itt a harmadik lehetőséget válaszd!Jó lett?
Imre
Kedves András!
A kernel32 és a kernel64 Windows oprendszer API-k. Leginkább dll fájlok, amiben meghívható windows szintű függvények vannak.
A sleep valószínűleg egy olyan fv, ami fél másodpercig „nem csinál semmit”
Én csak nagyon körültekintően használnék ilyesmit, mert más-más gépeken más-más eredményt produkálhat, vagy egyik gépen talán nincs is ottauz a dll, amiből hívnék egy függvényt.Biztosan megvan az okod, miért akarod, gondolom valami figyelem felkeltés, de ez a villogó dolog meglehetősen old style.
Azt sokkal egyszerűbb megcsinálni, hogy amíg nem töltik ki, valamilyen színű legyen a háttere, utána meg normál. Ez egy sima eseménykezelés.
A sheet kiválasztása eseményhez egy olyan kód, ami megnézi az adott cellát, és ha üres, akkor megszínezi valahogy
Az adott cella tartalom módosulásához pedig a háttérszín alapra állítása.imre
Örülök, hogy tetszik.
Szeretem az ilyen kihívásokat. Még éppen a határaimon belül… 🙂Szia!
Itt bizony az INDIREKT függvényt kell segítségül hívni.
Ezzel lehet szövegesen összerakni egy hivatkozást.Az oszlop indexét használva a CÍM (ADDRESS) függvénnyel meg lehet tudni a keresett oszlop első cellájának címét. Ebből lehet teljes oszlophivatkozást készíteni.
Visszatöltöttem a megoldást.
Elég brutális lett, de megvan lépésenként is.
A tetejére változóként felvettem az adatokat tartalmazó munkalap nevét, és a fejkléc sorszámát.Ha nem túl nagy a táblázat, akkor fog működni.
Sok adattal lassú lesz.Majd írj vissza, hogy jó-e így!?
Imre
-
A hozzászólás módosításra került: 8 years, 9 months telt el-
horvimi.
Attachments:
You must be logged in to view attached files.2016-04-29-08:53 Hozzászólás: Mezőben dátum dinamikusan kerül bele, de ha már kitöltve akkor ne módosuljon… #2641Szia!
A Ma() függvény mindig frissíteni fog. Automatikus megoldás makró nélkül nincs.
Kézzel értékké lehet alakítani naponta a képleteket.Az ilyesmit eseménykezelő makróval szokták megoldani.
Imre
Kedves István!
csak pontos feladatleírás alapján tudok kalkulálni egy ilyet.
Nagyjából értem, de nagyon korlátozott az időm, ezért fontos számomra, hogy ne legyen olyan, hogy megcsinálok valamit, sé kiderül, hogy nem erre gondoltál, vagy még ezt, meg még azt kellene bele megcsinálni.Ha kapok konkrét mintákat, a mappaszerkezetet, és egy eredmény fájl mintát, akkor tudom megítélni, mekkora feladat lenne.
Azt is jó lenne látni, hogy a dátumot hogy szeretnétek megadni, amihez tartozó napló bejegyzéseket kiszedi minden fájlból?Köszi,
Imre
Szia!
Én elsőre ezt próbálnám:
1. Ctrl+H (keresés-csere)
2. Ezt keresse: „<*>” (Kacsacsőr, csillag, kacsacsőr, és ne tegyél idézőjelet)
3. Erre cserélje: ezt hagyd üresen
4. Az össze cseréjeImre
Szia!
Amit csinálni szeretnél, azt nem lehet makró nélkül megtenni.
Elvileg is aggályosnak találom a dolgot, miszerint mit keresnek adatok és képletek is ugyanabban az oszlopban? Részösszeg képletek?További kérdések:
– A beillesztendő adatmennyiség mindig ugyanakkora?
– A képletek mindig ugyanoda esnek? Azaz ugyanabban a sorban vannak?
– A képletek pozíciójában mi található a beillesztendő adatok esetén? Ott üresek vannak? Vagy esetleg a képletek eredményei értékként?Ötletem viszont lenne, amit kipróbálhatsz.
Ha el tudnád rejteni a beillesztés idejére azokat a sorokat, amikben a képletek vannak, és a beillesztésnél meg tudod oldani valahogy, hogy a képletek pozíciója kimaradjon, de legyen egybefüggő a beillesztendő adatsor, akkor még akár sikerülhet is a dolog.A képletek sorainak elrejtés egyszerűbb falat mint a másik.
Imre
Szia!
Az a helyzet, hogy adatbázis-kezelési szempontból az azonosítók általában szövegesek. Még akkor is, ha csak numerikus karaktert tartalmaznak. Így lehetséges, hogy akár nullával is kezdődhetnek.
tehát az SAP nem tesz mást, mint abban a formátumban exportálja, amiben van nála.Az elvi probléma inkább a többi táblában van, amik meg számként tárolják.
Ráadásul az Excel még arra is képes, hogy automatikus konverziót végez, azaz egy szöveges számot számmá konvertál magától. begépelésnél ugye ez egyértelmű, de importnál is előfordul.Nem vagyok SAP guru, de hallottam már arról, hogy export során be lehet állítani az oszlopok típusait.
Azt is kipróbálhatod, hogy SAP-ból csv-be Exportálsz, és amikor az Excelbe olvasod be, akkor a varázsló adott lépésénél az azonosító oszlopot megpróbálod szám típusúként megadni, hátha megeszi.
Az Excel ebben nem annyira jó, mint az Access.
Hát, ennyi a praktikus magyarázat.
Imre
Szia Tamás!
Majdnem biztos voltam benne, hogy dátum mezővel szívsz.
Ezekkel autofilternél és advanced filternél is csak a baj van.
Makrófuttatáskor konkrétan nem eszi meg a dátumot dátum formátumban.
Tehát nem írhatod ezt:>=2016.03.24
Az már eggyel jobb próbálkozás volt, (mert gondolom sejtetted a problémát), hogy megpróbáltad összefűzni a dátumot, de az eredmény továbbra is dátum forma maradt:
Range("C2").Select ActiveCell.FormulaR1C1 = "=""<=""&YEAR(RC[10])&"".""&MONTH(RC[10])&"".""&DAY(RC[10])"
Az egyik lehetséges megoldás az, hogy megnézed, hogy annak a dátumnak, ami akarsz,
mi a dátumszáma, és azt írod a feltételbe. Pl.: a 2016.03.29 dátumszáma 42458.Tehát ez jó lehet:
<=42458
De ez elég béna, ezért számított formában érdemes beírni a cellába a makró futtatás előtt:
="<="&DÁTUM(2016;3;27)
Beírás után különben ez dátumszámkét fog látszódni
<=42457
És végül, ha makróval akarod beírni:
Selection.FormulaR1C1 = "=""<=""&DATE(2016,3,27)"
Így a dátum egyes részei lehetnek befűzött változók is.
Kipróbáltam a küldött fájlon, működik, úgyhogy menni fog Nálad is, most nem xcsatolom vissza.
Minden jót, majd jelezd, hogy rendben van-e!
Imre
-
A hozzászólás módosításra került: 8 years, 10 months telt el-
horvimi.
-
A hozzászólás módosításra került: 8 years, 1 month telt el-
-
SzerzőBejegyzés