Kezdőlap › Fórumok › Excel témák › Adatok lekérdezése Excel fájlból
- This topic has 11 hozzászólás, 2 résztvevő, and was last updated 8 years telt el by mano4219.
-
SzerzőBejegyzés
-
2016-11-18-17:52 #3180
Sziasztok!
A problémám a következő:
2007-es Excel-ben létrehozott lekérdezés nem működik megfelelően az új 2016-os Excel-ben.
A lekérdezést Excel fájlból lekérdezésszerkesztővel hoztam létre.
Minden adatot áthoz, kivéve az időértékeket, helyettük csak 0 értékeket ad eredményül.
Azóta elkészítettem a 2016-os lekérdezésszerkesztővel az új Lekérdezést. Minden remekül működik benne csak a paraméteres lekérdezést nem tudom hogyan kell beállítani.
Próbálkoztam a korábbi módszerrel, azaz [adat]-t írtam a konkrét adatok helyett, de az itt nem műxik, mivel a [] mezőnév hivatkozásra utal.
A másik kérdésem a következő:
Hogyan lehet elérni, hogy a lekérdezésben szereplő adatforrás/fájl elérési útja megadható legyen, pl: ugyanott keresse ahol a főprogram is található.
Mivel ezt a programot sokan használják más gépeken is, csak akkor működik, ha azonos nevű (elérési útvonalú) mappában vannak. Sajnos ez nem minden gépen oldható meg.Köszönöm!
2016-11-20-23:58 #3181Szia!
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 telt el-horvimi.
2016-11-21-16:11 #3183Szia Imre!
Köszönöm a gyors választ.
A paraméteres lekérdezésnél én is úgy jártam el ahogy említetted, sajnos azonban az új 2016-os Office-ban valamilyen adattípus inkompatibilitási probléma lehet.
A „régi” MS Query-t használva minden jól működik egészen addig, amíg vissza nem küldöm az adatokat.
Mellékelek néhány képet, ahol láthatóak a lekérdezési feltételek (az SQL utasítás is) és a feltétel szerint szűrt (kapott) adatok. A háttérben látható, hogy itt még jól jelennek meg a repülési idők (lekérdezés8.jpg), de azokat visszaküldve már csak 00:00-kat látunk. (lekérdezés6.jpg)Attachments:
You must be logged in to view attached files.2016-11-21-16:32 #3185folyt.
Az új 2016-os Excel lekérdezésszerkesztőjével ez a probléma megszűnik, mivel rögtön a fájl beolvasása után típus módosítást végez az összes adatra.
Itt meg az a bajom, hogy nem találok sehol a neten utalást arra, hogy milyen vezérlő karakterekkel kell beírni a képletbe a paramétereket (lásd MS Query-ben „[név]” kapcsos zárójelek). Sajnos itt már nincs meg a jó öreg SQL utasítás, vagy legalábbis én nem találtam meg.Az elérési útvonallal kapcsolatban meg arra gondoltam, hogy Makróban lekérdezem a fájlok elérési útvonalát(szülő könyvtár), ahogy az pl. az SQL utasításban látszik is, majd ezt az elérési útvonalat, mint paramétert megadom a Lekérdezésszerkesztőnek.
A helyzet ugyanis az, hogy sokan csak egyszerű felhasználóként futtatják a munkatársaim ezt a programot (otthoni gépen, vagy munkahelyi környezetben) és problémát okoz nekik, ha újra csatolni kell az adatbázist.Még egyszer köszönöm a segítséget!
Ha valakinek lenne további ötlete, szívesen várom.Üdv: Péter
Attachments:
You must be logged in to view attached files.2016-11-21-16:59 #3187folyt.
Így néz ki az újfajta lekérdezésszerkesztőben a szűrési parancs. Az aposztrófok között van a „Stark” szűrni kívánt adat.
Ide nem tudom mit kéne írni, hogy paraméterként vegye át máshonnan.
Az is látható, hogy valamiféle adat konverziót végez mikor betölti az adatbázist. ( =Table.SelectRows(#”Típus módosítva”, each stb.)Attachments:
You must be logged in to view attached files.2016-11-21-17:11 #3189Na 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/2016-11-21-17:20 #3190Köszi.
Az MS Query-t is próbáltam az újban, de ott is ugyanaz a jelenség: nem hozzá át az időértékeket.
Ha adsz egy E-mail címet elküldöm a fájlokat, hátha rájössz mi lehet a gond.2016-11-21-17:26 #3191A 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
2016-11-21-17:37 #3192Lehet, hogy ez a probléma, ugyanis a forrásfájlban 1900. 1. 0. 0:25-ként jeleníti meg, míg a Query-ben 1899. 1. 0. 0:25-ként ugyanazt az értéket.
2016-11-21-17:43 #3193Az 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
2016-11-21-17:54 #3194jól látod 🙂
repült idő= leszállási idő-felszállási idő2016-11-21-18:42 #3195Elültetted a gondolatot bennem és remélem ez lesz a megoldás!
Mivel a repülési idő egy számított érték és teljesen feleslegesen van jelen az adatbázisban, egyszerűbbnek vélem a fel- leszállási időket lekérdezni és abból számoltatni utólag.Köszönöm még egyszer!
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.