Telefonszámunk: 1-472-0679

[Resolved] MS Query

Kezdőlap Fórumok Excel témák [Resolved] MS Query

Topic Resolution: Resolved
4 bejegyzés megtekintése - 1-4 / 4
  • Szerző
    Bejegyzés
  • #3963
    frank
    Felhasználó

      Sziasztok!

      Az alábbi gondom van a query-vel.
      Van négy Excel táblám amiből készítettem egy query táblát csatolással.
      Nagyon jól működik az egyik táblát nem is kell megnyitnom kiveszi belőle a szükséges adatokat.
      Van azonban egy dolog amire még nem találtam jó megoldást.
      Ha új oszlopot adok hozzá valamelyik táblához akkor azt be tudom illeszteni utólag a query táblába is, de emiatt azok a képletek amik a query-ből veszik az adatokat megváltoznak.
      Ahogy látom azért mert a query nem úgy viselkedik mint egy formázott tábla, vagyis nem a fejlécben szereplő nevek alapján hivatkozik az oszlopra,(látszólag igen), hanem ha jól látom számolja az oszlopok helyét és úgy keres vissza.
      Ezért ha hozzáadok egy oszlopot mindig elcsúsznak a képleteim.
      Ezt egyenlőre megoldottam azzal, hogy minden oszlopot hozzáadtam a query-hez, de eljött ismét a pillanat amikor szükség lenne egy új oszlopra.
      Emiatt azonban az összes képeletet amelyek a query táblára hivatkoznak újra kell írnom.
      Erre keresnék megoldást, hogy a query táblában bárhová is mozognak az oszlopok a hivatkozásaik állandók legyenek.
      Itt egy példa:
      =HA(HIBÁS(INDEX(Könyvelés.xlsm!Könyvelés_query[Fiz. határidő];HOL.VAN([@[Bejövő Számlaszám]];Könyvelés.xlsm!Könyvelés_query[Bizonylatszám];0)));””;(INDEX(Könyvelés.xlsm!Könyvelés_query[Fiz. határidő];HOL.VAN([@[Bejövő Számlaszám]];Könyvelés.xlsm!Könyvelés_query[Bizonylatszám];0))))
      Elvileg a két név oszlop alapján kellene keresnie, de ha beillesztek egy oszlopot akkor odébb tolja a neveket és a képletben más oszlop név fog szerepelni,(ami sorszám szerint ide került a helyére), és át kell írni az összes képletet.
      A segítségeket köszönöm előre is!

      Üdv:LF

      #3964
      horvimi
      Adminisztrátor

        Szia!

        Sikerült reprodukálnom a problémát.
        Ez egészem megdöbbentő.
        Ha lesz időm, kipróbálom PowerQuery-vel is, hogy ott igaz-e ez a probléma.

        A jó hír az, hogy sikerült találnom egy megoldást.

        Mielőtt ezt elmondanám, engedd meg, hogy a képletedhez hozzászóljak.
        2007 óta nem szokás használni a HA(HIBÁS… szerkezetet, mert így mindenképpen kétszer fut le a keresés.
        Mindegy, hogy HOL.VAN vagy FKERES, nagyon nem hatékony. Helyette a HAHIBA függvényt használjuk.
        Ez volt az egyik új függvény a 2007-ben.
        Olvasd el ezt!

        Node a fő probléma megoldása az (jobb híján), hogy az INDEX függvényben használni kell az oszlop paramétert is, és azt a fejlécben történő dinamikus kereséssel adjuk meg.

        Írtam az INDEX függvényről is nemrég

        Tehát 2D keresést kell csinálnod, ami csak a lényeget tekintve kb. így nézne ki:

        INDEX(Könyvelés.xlsm!Könyvelés_query;
        HOL.VAN([@[Bejövő Számlaszám]]; Könyvelés.xlsm!Könyvelés_query[Bizonylatszám];0);
        HOL.VAN("Bizonylatszám";Könyvelés.xlsm!Könyvelés_query[#Fejlécek];0))

        Tehát Az INDEX függvény a teljes „Könyvelés_query” táblában keres, és az adatot az annyiadik sorból adja vissza, amit a HOL.VAN megtalált, és az annyiadik oszlopból, ahol a könyvelési tábla fejlécében a „Bizonylatszám” szöveg van.

        Ez nekem működött az összerakott demóban.

        Imre

        • A hozzászólás módosításra került: 6 years, 11 months telt el-horvimi.
        • A hozzászólás módosításra került: 6 years, 11 months telt el-horvimi.
        #3967
        frank
        Felhasználó

          Szia!

          Köszönöm! Nálam már a második érdekes hiányosság jön elő a query kapcsán. Nem lehet jelszavas védelem és a fent leírtak.
          Jó lennék tesztelőnek.:-)
          Köszönöm a megoldást, ha jól értem akkor a „&quot”…quot beillesztésével tudom rábírni a query táblát, hogy ne sétáljanak odébb az adatok egy új oszlop beillesztésekor. Kétszer kell használni a HOL.VAN függvényt?
          Eddig ez volt HAHIBA nélkül: (INDEX(Könyvelés.xlsm!Könyvelés_query[Fiz. határidő];HOL.VAN([@[Bejövő Számlaszám]];Könyvelés.xlsm!Könyvelés_query[Bizonylatszám];0)))).
          Most ezt kell ehelyett írni : (INDEX(Könyvelés.xlsm!Könyvelés_query[Fiz. határidő];HOL.VAN([@[Bejövő Számlaszám]];Könyvelés.xlsm!Könyvelés_query[Bizonylatszám];0);HOL.VAN(&quotSzámlaszám"Könyvelés.xlsm!Könyvelés_query[Fejlécek];0))
          Ha el nem írtam. Ha igen javítsd ki légy szíves.
          Macerás, de így legalább csak egyszer kell újra átírnom az összes képletet az összes munkalapban.
          Ha kipróbáltam leírom a tapasztaltakat.
          A HAHIBA függvényt már használom az újabb képleteknél, éppen a cikked olvasása végett, ezek még régebben gyártott képletek.
          Kérdés, hogy mennyire érdemes átnézni a tábláimat és átjavítani az új függvényre. A réginél igazából megírni volt nehéz pontosan a függvényeket, már egy zárójeltől is kiakadt.
          Ha ez gyorsítja a táblákat akkor mindenképpen átírom fokozatosan az összeset.
          Egyébként nagyon jól lehet tanulni itt én mindig itt keresek megoldást a gondjaimra.
          Jó lenne több újdonság – már ha van – mert aki ezeket a leckéket könnyíteni tudja a munkáját.
          Néha az indexen van ötlet de olyan körülményes, hogy felét nem érti az átlag felhasználó.

          Köszönettel:
          LF

          #3968
          horvimi
          Adminisztrátor

            Szia!

            Először:
            Mindent írj át HAHIBA verzióra. Így csak egyszer keres és nem kétszer. tehát gyorsabb lesz.

            Másodszor:
            A válaszban megírtam, hogy mit kell írnod.
            Az nem az, amit te most írtál. Nézd meg jobban. Csak sorokra tördeltem, hogy kiférjen.

            Imre

          4 bejegyzés megtekintése - 1-4 / 4
          • Be kell jelentkezni a hozzászóláshoz.