Hozzászólások
-
SzerzőBejegyzés
-
Szia!
Ezt meglátásom szerint két segédoszloppal lehet megoldani.
Vegyük alapnak az A oszlopot.
Az első segédoszlopba kivenném a zárójelben lévő szövegeket (i, fn, m, stb). Ez képezné a rendezés fő szintjét.
A szükséges tudást, függvényeket és a megoldást egy mai másik fórumkérdésben találod.Egy másik oszlopba pedig kivenném a nyitó zárójel előtti betűt, ami a szóköz határoló miatt valójában kettővel van előtte.
A SZÖVEG.KERES függvénnyel megkeresed a nyitó zárójelet, majd a KÖZÉP függvénnyel kiveszel az annyi -2 karaktertől 1 karaktert.
=KÖZÉP(A3;SZÖVEG.KERES("(";A3)-2;1)
Ez az oszlop lenne a rendezés második szintje.Tehát ha megvan a plusz 2 oszlop, akkor
Adatok menü-> rendezés ->Első szint a szófaj, második szint a szó utolsó betűje.Lényeges, hogy a szó utolsó betűje és a nyitó zárójel között mindig ugyanannyi, lehetőleg 1 szóköz legyen. Ha ez nem biztos, akkor még azzal is foglalkozni kell egy KIMETSZ függvénnyel.
Imre
- A hozzászólás módosításra került: 7 years telt el-horvimi.
Szia!
1. Megkeresed a kezdő zárójelet, meglesz a pozíciója
2. Ugyanez a záró zárójellel.
3. Ebből kiszámolható, hogy honnan és milyen hosszú szöveget kell kivenni a KÖZÉP függvénnyelEz csak az első zárójelben lévő adatot veszi ki. Ha egy cellában több zárójeles adat is van, és azok is kellenek, akkor már koránt sem ennyire egyszerű a helyzet, főleg, ha nem tudjuk mennyi. Ahhoz már segéd számítások, oszlopok kellenek.
A fenti lépések megoldásához ez a képlet vezetett, a fájlt visszatöltöttem. Tettem bele egy fejlécet, ezért a második sorba került az első adat.
=KÖZÉP(A2;SZÖVEG.KERES("(";A2)+1;((SZÖVEG.KERES(")";A2))-B2-2))
Erre gondoltál?
Imre
Attachments:
You must be logged in to view attached files.Kicsit pontosítanád, pl. egy minta feltöltésével?
Legyen benne, hogy miből indulunk, és mi lett a végeredmény.köszi!
Dani!
Szeretném megkérdezni, hogy a 91% birtokába hogyan jutottál? Nem te számoltad ki valahogy?
Na mindegy, amit kérdezel, alapfokú matematika.100%-nak kell tekinteni azt, ha mindenki 5 pontot adott volna. Tehát a 100% az az összes szavazat szorozva öttel. Jelen esetben ez 59 szavazattal 295. A tört rész pedig soronként a szorzatok összegezve, tehát ahányan fél pontot adtak szorozva a 0,5-el, ehhez hozzáadva az egy pontot adók szorozva 1-el, és így tovább. Másképpen mondva a pontok és a rájuk tett szavazatok szorzatösszege.
A kettő hányadosa megadja az összesített százalékot.A konkrét példára, ha egy üres cellába beírod ezt a képletet:
=SZORZATÖSSZEG(B2:B11;C2:C11)/(SZUM(C2:C11)*B11)
Ezután már csak formázni kell százalékra, és látni fogod a 91%-ot.
ha átírogatod a szavazatokat, akkor változni fog.Imre
P.S
A másik bejegyzést töröltem, mert új témát kezdtél, de az ide tartozott volna.Igen, nem volt pontosan definiálva a feladat, de az első két megoldás valamelyike már úgy tűnik megfelelt.
Sziasztok!
Delila megoldása tökéletes abban az esetben, ha nincs ismétlődés a max és min értéket illetően a tartományban. Ha van, akkor azok mind kiesnek az átlagszámításból. Kérdés, hogy ez jó-e, de ezt csak a Dani tudja.
Egy másik gondolatmenetet is leírnék.
Eszerint a teljes tartomány összegéből kivonjuk a max és a min értéket, majd ezt elosztjuk a tartomány kitöltött celláinak kettővel csökkentett számával.=(SZUM(tartomany)-MIN(tartomany)-MAX(tartomany))/(DARAB2(tartomany)-2)
Ez a képlet azonos eredményt ad Delila képletével, ha nincsenek azonosságok a max vagy a min értékben, és eltér, ha vannak.
Imre
Szia!
Ctrl-al vagy Shift-el a három fájlt kijelölöd, jobb klikk-> megnyitás.
A csatolások frissítését lehet automatikusra tenni. Érdemes kipróbálni, hogy mi lesz.
lehet, hogy egyik gyorsabban, a másik lassabban nyílik meg, ezért pont nem jön létre a csatolás.Az Excel a memóriában dolgozik. Hogy mennyi sornál fárad el? Ez egyedi. Szerintem annyinál, amennyinél Te úgy ítéled meg.
Az Excel nem adatbáziskezelő. Az adatbázis-kezelők sem csinálnak semmit maguktól. Minden az adatbázis szerkezetétől, és az azt kezelő szoftvertől függ. Viszont Ők az adatokat döntően a disk-en tárolják, és a memóriában csak azt, ami éppen kell.
Szia Dani!
A probléma az, hogy a megszámláláshoz a feltételben az „öböl” szót írtad. Ez így pontos egyezést keres, de az A oszlop egyik cellája sem tartalmazza csak az „öböl” szót.
Helyettesítő vagy más néven joker karakterként a *-ot (csillag) kell használni. Helyesen így néz ki a képlet:
=DARABTELI(A2:A19;"*öböl*")
Tehát számold meg, hogy hány olyan cella van az A2:A19 tartományban, amiben benne van valahol az „öböl” szó. Tehát bármivel kezdődik (első csillag), majd jön az Öböl, majd bármire végződik.
Ha az öböl mindig a végén van, akkor „*öböl”-re kell keresni.Remélem segít!
Imre
Szia!
Csípőből azt mondanám, hogy ezt a feladatot nem Excelben kellene csinálni. A konkurrens használat csak hasonló bűvészmutatványokkal barkácsolva működget egy darabig. Én az adatokat adatbázisba írnám, és ahhoz csatlakoznék a kliensekkel.
Na de ezt ugye meg is kellene csinálni, Access-be vagy még inkább valami SQL szerverbe kellene az adatokat tenni valahogy (különben makróval nagyon egyszerű lenne)
Szóval a mostani probléma lehet időzítési gond is. Tehát hogy tovább indul a makró, és megpróbálja bezárni a fájlt, de frissítés még nem futott le a háttérben. Próbálj meg betenni egy kis várakozást.
Application.Ontime
vagy olvasd el ezt a fórumbejegyzést, itt is jó lehet, valamelyik megoldás.
Imre
- A hozzászólás módosításra került: 7 years telt el-horvimi.
Nincs ezer soros korlát. Jó nagy hülyeség lenne. Az 1000 sor csak arra vonatkozik, amikor a lekérdezést szerkeszted, ott a preview csak ezer sor mutat. Különben iszonyú lassú lenne minden lépésnél a rengeteg rekordot fel is dolgozni.
A lekérdezés betöltésénél már be fog hozni minden sort.
A jelszava megnyitási védelem valóban probléma, de ez utóbbi nem az.
Az utolsó kérdést nem értem.
Imre
Szia!
Az Office 365 verziók közül ha 2016-os változatokban mindben benne van a Power Query, viszont a rendszeres frissítést nem mindegyik támogatja.
Ami biztosan jó, az a Pro Plus verzió.
Itt egy link, ahol elég részletesen látszik, h mi a helyzet
Elég hosszú, keress rá a Power Query szóra. Azt fogod látni, hogy:
Yes Yes No No No NoA táblázat tetején pedig az Office 365 verziókat.
A No nem azt jelenti, hogy nincs benne, mert az alap mindegyikben benne van, csak azt, hogy nem fog frissíteni.
Ezt gyakorlatilag egyáltalán nem kommunikálják az MS-nél.
Imre
Szia!
Már az elején mondtam a Power Query-t. Na de most meg a védett munkafüzet ügy. Ezzel kapcsolatban azt találtam egy 2016 júliusi cikkben, hogy nem támogatott a védett munkafüzetekből történő lekérdezés.
Ez nem túl jó hír, sőt MS Query- esetén is ez a helyzet. Ezt nem tudtam, bele kell írnom a diákba, köszi, hogy felmerült!
Emiatt Én most csak makrós megoldást látok, ha nem akarod kézzel megszüntetni , majd visszatenni a védelmet.
Tehát készítesz egy új munkafüzetet, abba beleteszed a lekérdezéseket és az összesítő lekérdezést is.
Majd beleteszel egy makrót, ami 3 részből áll, ezeket akár külön-külön fel is veheted, majd egybe másolod.1. Megnyitja a kérdéses fájlt, leveszi a védelmet, majd elmenti és bezárja (bezárni nem is fontos)
2. Átvált a lekérdezést tartalmazó munkafüzetre és frissíti a külső kapcsolatokat
3. Ha nem zárta be, akkor csak átvált megint a kérdéses fájlra és visszateszi a védelmet, majd elmenti és bezárjaImre
OK. Ha nem adsz mintát, akkor nem tudok többet segíteni. Én most azt gondolom, hogy Power Query-vel megoldható lenne az, amit akarsz. Összerakod vele azokat az oszlopokat a két táblából, amiket szeretnél, és az eredmény alapján mehetne a PIVOT. Ez persze nem biztos, h így van.
Imre
Szia!
Én is az utóbbira tippelek 🙂
Szóval akkor pontosítást kérek újra, ha már visszatérünk az eredeti problémához:A két külön fájlban lévő táblázatod, amikből összevont kimutatást kell készítened, azonos fejlécűek, vagy vannak azonos nevű oszlopaik, és ezeket kellene egymás alá másolni közös fejléccel, majd ebből az egyesítettből megcsinálni a PIVOT-ot?
Melyik Excel verziót használod?
Imre
Szia!
A PLAFON függvény pont erre való.
Az első argumentumként megadott számot a második argumentuman megadott érték legközelebbi többszörösére kerekíti felfelé.Tehát a PLAFON(54;100) százra fog kerekíteni.
A PADLÓ() ugyamez csak lefelé.
Imre
Szia!
Az adatmodell struktúrát a fájlban tárolja. Megkérdezhetem, hogy miért importáltad az adatmodellbe, a lapokat? És nem is volt másolatod az eredetiről?
Ettől megszabadulni nem egyszerű, és még nem is próbáltam, csak olvastam róla.
Egy fórum kérdés utolsó bejegyzésében találtam egy biztató hack-et, próbáld ki.
Utána visszatérhetünk az eredeti kérdéshez, ha akarod.Imre
- A hozzászólás módosításra került: 7 years, 1 month telt el-horvimi.
Szia!
Próbálom értelmezni a kérdést:
Van három adatforrásod, három különböző munkafüzetben (Excel fájlban)
Ebből a háromból szeretnél egy eredmény táblát összehozni, majd abból egy PIVOT riportot.Azt is feltételezem, hogy a források adattartalma változik, mert különben csak össze kellene egyszer ollózni a szükséges adatokat egy új táblázatba…
Mivel nem látom az adatforrásaidat, nehezen tudok segíteni, mert a kérdés nem egyértelmű.
Azonos szerkezetű (fejlécű) táblázatok egymás utáni másolása-e a feladat, vagy az egyik tábla kiegészítése plusz oszlopokkal a másik két táblából (FKERES)Bármi is a pontos feladat (amit tisztázhatnál minta feltöltéssel), a megoldás makró vagy Power Query használata lesz szerintem.
Tehát akkor tudnánk tovább lépni, ha feltöltenél a három forrásból egy-egy mintát, a kívánt eredménytáblából is egy mintát.
Az egész lehet közös munkafüzet lapjain.
Imre
Szia Kati!
Kipróbáltam a kódodat, értem mit szeretnél. Ezt kattintgatással PQ-vel nem lehet megcsinálni. Valószínűleg M kóddal igen, de attól még távol állok, úgyhogy maradjunk a VBA-nál.
Imre
Ha jól értem, azt szeretnéd, hogy a pirossal kitöltött oszlopban listából kiválasztasz egy elemet, és jobbra mellé tegye oda az egységárat. Ez lenne a panel ár ugye? Amellett van egy darabszám, és így az egységár és a darabszám szorzata megadja a végösszeget.
Ehhez a következő kell:
– Az árlistát egészben táblázattá alakítani
– Az első oszlopát külön névtarománnyá alakítani
– A panel ár oszlopba egy FKERES függvénnyel kikeresed a D oszlopban kiválasztott tételt és a hozzá tartozó árat az árlista táblázatban.A darabszám adott, a mennyiség pedig a szorzás.
Visszatöltöttem.
Imre
Attachments:
You must be logged in to view attached files.ha találsz megoldást, az nagy segítség lenne sokaknak!
Köszi!
Sziasztok!
Delila megoldása is jó lehet, de:
Ha számítás eredményének a változását szeretnétek érzékelni, akkor ezt szokás tenni:
1. A fájl megnyitásakor egy globális változóba lementjük a képlet aktuális eredményét
2. A Worksheet_Calculate eseményben pedig megnézzük, hogy most mi van a cellában (target), és az megegyezik-e az induláskorval.Ha nem egyezik, akkor változás volt. Ezt kiírhatjuk, de a mi fontos, hogy az új értéket megint tegyük el a globális változónkba.
Tehát a modul tetején van egy
Dim regi_ertek
A munkafüzet megnyitási eseményéhez tartozik a figyelendő cella értékének lementése
Private Sub Workbook_Open() regi_ertek = Sheet1.Range(figyelt cella).Value End Sub
Végül a munkalap kalkuláció eseményéhez tesszük az összehasonlítást és nem egyezés esetén a lementést.
Private Sub Worksheet_Calculate() If Range(figyelt_cella).Value <> regi_ertek Then MsgBox "Változás!" regi_ertek = Range(figyelt_cella).Value End If End Sub
Imre
Szia!
ha ODBC-vel csatlakozol (eddig ezt nem említetted), akkor ezt nézd meg.
https://community.powerbi.com/t5/Issues/DataSource-Error-ODBC-ERROR-07006-Oracle-ODBC-Restricted-data/idi-p/112708A fenti linken a driver telepítése után a natív ORACLE csatlaokzást kell elvileg választani. De ha nem tudtad telepíteni sem, akkor mindegy.
Különben létező problémáról van szó ODBC esetén, és nem igazán hoztak még olyan megoldást, ami alapból megoldja a problémát, de itt írnak valamit, amit kipróbálni nem tudok, hogy valahová beírnak egy SQL parancsot, és akkor működik. Ha jól emlékszem a csatlakozáskor meg lehet adni egy SQL parancsot…
???
Imre
Szia!
nem tudom megnyitni a Word fájlt, azt mondja, hogy sérült.
Mindenesetre nézd ezt meg, hátha segít.Könyörgöm, a képlet csak a hetedik sorig nézi az adatokat a B és az A oszlopban!
Javítsd már ki, hogy a végéig nézze!Valamit nem jól csinálsz. A fájl indításakor engedélyezni kell a makrókat. Amit visszatöltöttél, az ugyanaz, amit Én tettem fel.
Szia!
Csatoltam a megoldást tartalmazó fájlt. Benne van a makró, ami egy UDF.Ez azt jelenti, hogy tulajdonképpen egy új munkalapfüggvénnyel egészíti ki az Excelt.
=CONCATIF(felt_tartomany; feltetel; stringtartomany_amiket_osszefuz; [elvalaszto]; [Noduplicates])
Hasonlóan kell használni, mint a SZUMHA függvényt. Az F oszlopban látod.
Legegyszerűbb, ha ebbe a fájlba másolod be az adatokat.
Indításkor engedélyezned kell a makrókat.
majd szólj vissza, hogy sikerült-e!
Imre
Attachments:
You must be logged in to view attached files.Kedves Jani!
Ez a feladat makróval oldható meg.
Óriási szerencsére találtam egy működő UDF-et a neten, pont azt tudja, amit szeretnél.Viszont van pár lépés, hogy használatba vedd.
Ha érdekel, akkor felteszem egy kis magyarázattal.Imre
Na.
Ezek a legjobb pillanatok!
Gratulálok!Kedves Kriszta!
Így látatlanban nehéz megmondani mi a baj.
Ha csinálnál egy mintát, és feltöltenéd, akkor meg tudnám nézni, h mi a baja.
A makró és az adatfájlt zip-eld össze.Azt azért jó, ha tudod, hogy a SUMIFS függvény nem tud zárt munkafüzetből dolgozni, tehát ha ezt akarod használni, akkor valóban meg kell nyitni a forrás munkafüzetet. De ez igaz akkor is, ha a makró lefut, és beírja a képletet, majd bezárod a forrás fájlt. Ekkor el fognak romlani az eredmények.
na mindegy, ha teheted, töltsd fel azt, amit eddig csináltál. Ha üzleti adataid vannak, akkor másítsd meg az adatokat. Nem kell csak mondjuk 10 sor.
Imre
Ha már lefut, az biztató.
Lehet, hogy rá kéne nézzek távolról.TeaViewer-ed van?
Te tudod kezelni a Mac-et, én megpróbálom a makrót meggyógyítani, hogy ott is működjön.
Vagy legalább látnám, hogy mi a baja.Igen, sajnos valóban nincs, nem tudtam. Sajnos a Mac-es Office mostohagyermek még mindig.
A B terv egy makró lehetne, ami kigyűjti a dolgokat, de Mac-en Excel-t makrózni öngyilkosság. A Windows-on írt makrók jó eséllyel nem emennek.
Azért megpróbáljuk jó?Csatoltam egy makrós megoldást.
A szures lapon beírod a B1-be a recept nevét, és megnyomod a gombot.Ha működik, akkor örülünk.
Néhány megkötés:Az adatok lapon a táblázatnak A1-ben kell kezdődnie (fejléc)
A szures lapon az A3-ba teszi a szűrést mindig.Megy?
Imre
Attachments:
You must be logged in to view attached files.Szia!
Csináltam egy Power Query megoldást.
remélem nálad is működni fog.Az első munkalapon az adatforrást táblázattá alakítottam, az első oszlopnak adtam egy Add-in nevet.
A táblázat neve az, hogy Data.
Ebből kiindulva fut le egy átalakítás, ami a második munkalapra betölti annak a receptnek a hozzávalóit, aminek a nevét beírod a B1-es cellába.Ha az első munkalapon kicseréled vagy bővíted az adatokat, hogy az összes recept benne legyen, és az egészet táblázattá alakítva a data nevet adod, akkor működni fog.
A szűrés akkor fut le, ha a B1-be beírod a recept nevét, majd az alatta lévő szűrt eredményre jobb klikk és Frissítés.
Előbb nézegesd ezzel, majd mentés másként után próbáld ki az összes adattal.
jelezz vissza, hogy mi lett!
Lehetnek kompatibilitási problémák, kíváncsi vagyok.
Imre
Attachments:
You must be logged in to view attached files.Ha nem haragszol, akkor átírtam a címet. Amint látod, mindenki megpróbál a címmel tömören utalni a problémára.
Kb. úgy, ahogy most átírtam.
Ha jól látom 2016-os Excel-ed van.
Ez a probléma megoldható makróval vagy PowerQuery-vel. Excel 2016-ba már be van építve.
Én az utóbbit javaslom.Első körben kell csinálni egy UNPIVOT-ot, és utána egy szűrést vagy egy PIVOT táblát interaktív szűréssel.
Ha feltennél egy minta fájlt, azon megmutatnám.Viszont fontos lenne, hogy a nevek igaziak legyenek, mert azokat a Power Query bedrótozza a kódba. Átírni nem annyira szívderítő munka. Az adatoknak nem kell valósnak lenniük, és 3-4 receptnyi adat elég szerintem.
Összesen különben hány receptet tárolsz így?
Imre
2017-02-28-23:04 Hozzászólás: Cella lekérdezés adott időszakra, eredmény összehasonlítása más értékkel #34122017-02-28-08:24 Hozzászólás: Cella lekérdezés adott időszakra, eredmény összehasonlítása más értékkel #3409Az Office 2016 jó hír, mert abba be van építve a Power Query alapból.
Miért jár keresztre feszítés? Ezt nem értem. Telepíteni nem lehet dolgokat? Ez esetben nem kell.Egy munkahelyi problémához kértél segítséget.
A Power Query verziót este tudom feltenni, mert az otthoni gépemen van.
Igen, jól érted.Ha a szabadság igényléses tábla struktúráját megváltoztatjátok, vagy az átalakításhoz is készül egy megoldás, akkor csak be kell másolni az aktuális adatokat a Power Query riport munkafüzetbe, és az eredmény táblán nyomni egy frissítést.
Imre
2017-02-28-00:48 Hozzászólás: Cella lekérdezés adott időszakra, eredmény összehasonlítása más értékkel #3405Ha tudsz telepíteni Power Query bővítményt, azaz 2010-es vagy annél újabb Exceled van, akkor tudok szolgálni egy megoldással, ahogy említettem.
Itt egy kép róla.
Valamiért nem látszik, de az első oszlopban ott vannak a nevek is természetesen.
Béla
Béla
Béla
Béla
LaciTehát csak azok, ahol eltérés van.
- A hozzászólás módosításra került: 7 years, 2 months telt el-horvimi.
Attachments:
You must be logged in to view attached files.2017-02-28-00:31 Hozzászólás: Cella lekérdezés adott időszakra, eredmény összehasonlítása más értékkel #3403Szia!
Én annyit tudok most segíteni, hogy feltételes formázással kiemelem azokat a műszak bejegyzéseket, ahol V-nek kellene lennie, de nem az van.
Csatoltam.
Ha a szabi bejegyzés tábla is hasonlóan lenne kitöltve, mint a műszak, de abba csak V bejegyzések vannak, akkor Power Query-vel meg lehetne csinálni úgy, hogy csak aműszal táblát meg a szabi táblát kellene aktualizálni, majd frissítés, és kész.Fontos kérdés,hogy milyen verziójú Excelt használsz? Mivel a feladat xls formátumú volt.
Imre
Attachments:
You must be logged in to view attached files.Szia!
Pontosan azt, amit leírtál, makróval lehet megcsinálni.
Minden gomb kattintás eseményéhez megírni, hogy aktiváljon egy adott nevű lapot. Esetleg a lap nevét vegye az első oszlopból.Makró nélküli megoldásként lehetne azt csinálni, hogy az első lapon a lapnevekhez Hyperlinket rendelsz, ami a vonatkozó munkalap valamelyik cellájához ugrat.
Imre
Imre
Kicsit utánanéztem, nem sokkal lettem okosabb. Az biztos, hogy nem könnyű dologról van szó.
Ez egy SQL szerver kapcsolat, nem MS QUERY kapcsolat.Elképzelhető, h csak makróval lehet megcsinálni.
1. Meg kellene próbálni rögzítővel felvenni azt, hogy az SQL parancsban megváltoztatod a dátum értéket.
2. Ha sikerül, akkor a kódban a konkrét dátum helyére már be lehet varázsolni egy cella aktuális értéket, vagy esetleg be is kérheti a dátumot egy Inputbox-ban
3. A makróhoz készítesz egy indító gombot, vagy hozzáadsz egy billentyűkombinációt.
4. A makrót talán érdemes lenne külön munkafüzetbe tenni, vagy az Egyéni makró munkafüzetbe.
5. Indításkor bekérné a kívánt dátumot, és a kapcsolatban módosítaná a dátumot, majd elmentené a munkafüzetet.Ha az egész, amit leírtam, kínai, mert nem makróztál még soha, és nincs senki körülötted, aki segíthetne, akkor ki kell találni valamit.
Imre
Szia!
Kipróbáltad? Ha igen, mit tapasztaltál?
Ha még nem, próbáld ki!Nem fog sikerülni.
Marad a makró, vagy a Power Query. Utóbbi bonyolultsága a feltételtől függ.
Imre
Szia!
Ha makróval szűrsz, de helyben és nem kéred, hogy azonnal másolja máshová a szűrés eredményét, akkor megmarad az autoformázás.
Ezután a szűrés eredményét makróval másolhatod a kívánt helyre, és VOILÁ!Kipróbáltam, nekem működik!
Imre
Szia!
Első probléma
————————-
A speciális szűrést helyben végzed, vagy az eredményt más helyre kéred?
Kicsit utánanéztem, és sajnos az a hírem van, hogy ha más helyre másolod rögtön a szűrést, akkor a feltételes formázás nem fog megmaradni.
Megoldások:
1. Helyben szűrd, és utána másold a szűrés eredményét
2. Ugyanezt le lehet makrózni
3. megint csak makró, ami a szűrés eredményére alkalmazza ugyanazt a feltételes formázást, ami az eredeti táblán volt.Második
————-
Hát, az a tól-ig így szövegesen eléggé érdekesen hangzik, konkrétan hajmeresztő!
Látnom kellene a táblát, és hogy mit próbáltál meg, ami nem működött.
Nem tudom, hogy hányféle értékelésed van, de ezzel a módszerrel csak azt tudod vizsgálni, hogy egy cellában az van-e pontosan, hogy „1 db- 6 db”.
Ha a szóközöket elhibázod, már nem lesz egyenlő.
Tölts fel egy mintát!Imre
Szia!
Hogyan csatlakozol az SQL szerverhez?
MS SQL-lel?Az Adatok/Kapcsolatok ablak második lapján ott van az SQL kérdés.
próbáld meg a konkrét dátumot vagy dátumokat kérdőjelre cserélni.Nézd meg mi történik frissítéskor, és hogy hogyan változik a kapcsolatok ablak!
Imre
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: 7 years, 4 months 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: 7 years, 5 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: 7 years, 5 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: 7 years, 5 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: 7 years, 6 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: 7 years, 6 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: 7 years, 7 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: 7 years, 8 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: 7 years, 8 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: 7 years, 8 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: 7 years, 8 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: 7 years, 8 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
-
SzerzőBejegyzés