PHAKU miten toimii?

Herrazxcv

Minulla on taulukko, jossa on 1. alasivulla 10.000 asiakastunnusta sarakkeessa A. Alasivulla 2. on 500 asiakastunnusta sarakkeessa A1.

Nyt pitäisi 1 alasivulle sarakkeeseen B merkata "X" niiden asiakkaiden kohdalle, jotka löytyvät myös alasivulta 2.

Miten tuo tehdään? PHAKU ehkä toimii, mutta en ymmärrä, millainen kaava sen perään laitetaan.

8

938

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • jospalaskisin

      B1=JOS(LASKE.JOS(Taul2!$A:$A; A1)=0;""; "x")
      Kopioi kaava kaikkiin 10000 riviin. Vinkki: Valitse solu B1 ja tuplaklikkaa solun oikeassa alakulmassa olevaa "pallukkaa", kaava kopioituu alaspäin niin kauas kuin A-sarakkeella on tietoja.
      Kaavassa Taul2 tilalle vaihda se nimi joka on työkirjassa annettu sille "alasivu 2" ja muista huutomerkki (!) perään.

      • jospalaskisin

        Vielä tuosta kaavasta. Siihen jäi turhaan nuo "dollarimerkit". Niitä ei tarvita koska tuo A:A tarkistaa aina kaikki A-sarakkeen solut. Jos taas haluat tarkistaa vain nuo 500 riviä niin laita sitten $A$1:$A$500, että tarkistusalue pysyy aina samana kun kaava kopioidaan.


    • Kundepuu

      tommostakin voi käyttää. Tosin pitempi...
      VBA:ta, kun käyttää niin ei jää turhia laskutoimituskaavoja taulkkoon...

      B1=IF(ISERROR(MATCH(A1;Sheet2!$A$1:$A$500;0));"";"X")

      VBA
      taulukon moduuliin...
      Sub Tuplat()
      Dim Solu As Range
      Dim Solu2 As Range
      Dim Tuplat As Range
      Dim vika As Long
      Dim vika2 As Long
      'muuta taulukonnimet sopiviksi
      vika = Worksheets("Sheet1").Range("A65536").End(xlUp).Row
      vika2 = Worksheets("Sheet2").Range("A65536").End(xlUp).Row
      On Error Resume Next
      Application.ScreenUpdating = False
      'muuta taulukonnimet sopiviksi
      For Each Solu In Worksheets("Sheet1").Range("A1:A" & vika)
      For Each Solu2 In Worksheets("Sheet2").Range("A1:A" & vika2)
      If Solu.Value = Solu2.Value Then
      If Tuplat Is Nothing Then
      Set Tuplat = Solu
      Else
      Set Tuplat = Application.Union(Tuplat, Solu)
      End If
      End If
      Next
      Next
      Tuplat.Offset(0, 1) = "X"
      Application.ScreenUpdating = True
      End Sub

    • herrazxcv

      Kiitos ohjeista, mutta mikään noista ei toimi kunnolla. Taulukossa valmiina olevien tunnusten ei vertailu toimi, mutta jos syötän itse testiasiakkaita niin niiden kohdalla tunnistus toimii. Kaikki tietomuodot soluissa ovat samanlaisia. En käsitä ongelmaa. Kopioin kaikki tiedot samaan tauluun. Silti ei toimi. =JOS(LASKE.JOS(C:C;A1)=0;"ei löydy";"")
      A-sarakkeessa on kaikki asiakkaat. C-sarakkeessa osajoukko. Tuo kaava on B-sarakkeessa sinä välissä. Joka ikisessä kohdassa lukee "ei löydy" VAIKKA sarakkeissa onkin samoja asiakkaita. Mutta kun syötän itse uuden asiakkaan molempiin sarakkeisiin, niin funktio toimii ja antaa blankon. Mikä ihme tässä mättää?

      • herrazxcv

        Lisäksi: Funktio ei siis tunne kuin itse syöttämäni tapaukset. Jos syötän uudelleen A-sarakkeessa olevan tunnuksen ihan samanlaisena alkuperäisen päälle, niin tunnistus toimii! Tämä toimii vain sarakkeessa A. Älytöntä.


    • jospalaskisin

      Onko tieto tuotu jostain ulkoisesta ohjelmasta? Niissä täytyy olla joku ylimääräinen tulostumaton merkki. Jos siis kirjoitat uudelleen "päälle" johonkin soluun saman asiakastunnuksen käsin ja nyt kaava löytää sen, niin silloin siinä on varmasti ylimääräisiä tulostumattomia merkkejä.
      Koeta SIIVOA-funktiota, josko se pystyisi "puhdistamaan" ylimääräiset merkit. Funktio ei pysty poistamaan kaikkia ylimääräisiä merkkejä. Käy tuolla katsomassa, lisää ohjeita.
      https://support.office.com/fi-fi/article/Kymmenen-tapaa-tarkistaa-ja-korjata-tiedot-2844b620-677c-47a7-ac3e-c2e157d1db19?ui=fi-FI&rs=fi-FI&ad=FI

      • herrazxcv

        Tuosta sen täytyy johtua. Taulukko on tehty ohjelmallisesti ensin csv-tiedostoksi. Minä muunsin sen tavalliseksi Exceliksi tallentamalla.


      • herrazxcv

        Nyt huomasin, että asiakastunnusten perässä on 1 kpl blankoja. Kun editoin sen pois yhdestä solusta niin vertailu toimii. Mitenkähän saisin sen pois kaikista soluista kerralla?


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Riikka Purra lupasi Suomen kansalle 1 euron bensaa, hinta nyt 2 euroa

      Vasemmistolaisen Marinin hallituksen aikana bensa ei maksanut kuin 1,3 euroa litralta. Ministerin pitäisi perustuslain m
      Maailman menoa
      389
      5892
    2. Kohdataanko me

      Enää?
      Ikävä
      80
      5278
    3. Rakkaalle miehelle

      Terveiset rakas. Ikävä on edelleen. Suru valtaa sydämen, kun en saa lähestyä sinua. En saa vastauksia, en soittoa, viest
      Ikävä
      48
      4306
    4. Eräs on taas viettänyt kokoyön täällä!!

      Etkö sä nuku koskaan??
      Ikävä
      52
      3921
    5. Olipa turha tämä

      Rakkaustarinamme
      Ikävä
      52
      3709
    6. SDP:n kansanedustaja Nazima Radmyar uhriutuu somessa saamistaan viesteistä.

      https://www.is.fi/politiikka/art-2000011854410.html Miksi Razmyar ei kestä kansan palautetta oikean kansanedustajan tavo
      Maailman menoa
      162
      3390
    7. Muistatteko kuinka Marinin hallituksen aikaan kansalaisilla oli varaa kuluttaa?

      Tavallisella perheelläkin oli rahaa käydä sääännöllisesti ravintoloissa syömässä, koska vahvat ammattiliitot olivat neuv
      Maailman menoa
      100
      3164
    8. Vasemmistolainen valehteli jälleen - Purra tai persut eivät luvanneet "euron bensaa"

      Väite "euron bensasta" on ensisijaisesti poliittisten vastustajien käyttämä puhdas vale. Persut kyllä kampanjoivat näky
      Maailman menoa
      50
      3148
    9. Mitä tapahtuu

      Sitten keväällä ja kesällä
      Ikävä
      43
      2269
    10. Voitko sanoa jotain

      Hellää?
      Ikävä
      49
      2195
    Aihe