Taipuuko Excel tällaiseen?

Osaisiko joku tehdä seuraavalla tavalla toimivan Excel-taulukon vai taipuuko kyseinen ohjelma lainkaan tällaiseen?

Soluihin syötetään esimerkiksi tekstit:
ALEKO AKKA LEKA FBI KISSA
ATOMI HIKI MATTO MINÄ ETSIÄ

Kaavan pitäisi verrata aina kunkin rivin ensimmäistä sanaa rivin muihin sanoihin ja ilmoittaa moniko näistä muista sanoista voidaan kirjoittaa käyttäen rivin ensimmäisen sanan kirjaimia.

Esimerkki:
1. rivin ensimmäisen sanan (ALEKO) kirjaimilla voidaan kirjoittaa myös rivillä olevat sanat AKKA ja LEKA, jolloin kaava palauttaisi arvon 2.
2. rivin ensimmäisen sanan (ATOMI) kirjaimilla voidaan kirjoittaa myös rivillä oleva sana MATTO, jolloin kaava palauttaisi arvon 1.

Samaa kirjainta voidaan siis käyttää useampaan kertaan (vrt. ALEKO - AKKA).
4714
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

VBA:ta kyllä tarvitaan eli lyhyen koodin voi laittaa vaikka makroksi.

Tapoja toteuttaa se on vaikka kuinka monta. Esmes vaikka yhdellä taulukolla eli ensiksi vertaava (ALEKO) muuttujaan sen pituus tauluun verrattava kakisulotteisena tauluna muuttujaan sen pituus. Ensimmäisen taulun jokainen kirjain käy läpi kaikki verrattavan taulun kijaimet ja osumat lasketaan (kaksiulotteinen verrattava siksi että on turha käydä läpi jo löydettyjä). Mikäli osumien lkm on sama kuin verrattavan pituus on ehto täyttynyt eli saadaan uuteen muuttujan luku 1 jne. sitten vain seuraava sana verrattavaksi...
Esimerkkisi sanojen vertaaminen ei kestäisi ajallisesti sitäkään että olet nostanut sormen pois hiirinapilta.

Äänestä
  • on noin helppoa niin laitatkos sen makron tänne niin pääsee hommiin...

    Äänestä

Sub Haesanat
rivi=1
do
loydetty=0
vrt=cells(rivi,1)
if vrt="" then exit do
sar=2
do
sana=cells(rivi,sar)
if sana="" then exit do
kirjmaara=0
for t=1 to len(sana)
if instr(vrt,mid(sana,t,1))>0 then
kirjmaara=kirjmaara 1
end if
if kirjmaara=len(sana) then loydetty=loydetty 1
next
sar=sar 1
loop
cells(rivi,sar 1)=loydetty
rivi=rivi 1
loop
End Sub

Äänestä

openofficella vastaava paitsi, että löydetyt kirjaimet on lihavoituna

Sub Main
sheet=thiscomponent.sheets(0)
rivi=0
do
loydetty=0
vrt=sheet.getcellbyposition(0,rivi).string
if vrt="" then exit do
sar=1
do
cl=sheet.getcellbyposition(sar,rivi)
sana=cl.string
if sana="" then exit do
clcur = cl.createTextCursor()
clcur.gotoStart( False )
kirjmaara=0
for t=1 to len(sana)
clcur.goRight(0,false)
clcur.goRight(1,true)
if instr(vrt,mid(sana,t,1))>0 then
kirjmaara=kirjmaara 1
clcur.setPropertyValue("CharWeight", com.sun.star.awt.FontWeight.BOLD)
else
clcur.setPropertyValue("CharWeight", com.sun.star.awt.FontWeight.NORMAL)
end if
if kirjmaara=len(sana) then loydetty=loydetty 1
next
sar=sar 1
loop
sheet.getcellbyposition(sar 1,rivi).value=loydetty
rivi=rivi 1
loop

End Sub

Äänestä

Kommentoi aloitusta


Niklastus kirjoitti:

Osaisiko joku tehdä seuraavalla tavalla toimivan Excel-taulukon vai taipuuko kyseinen ohjelma lainkaan tällaiseen?

Soluihin syötetään esimerkiksi tekstit:
ALEKO AKKA LEKA FBI KISSA
ATOMI HIKI MATTO MINÄ ETSIÄ

Kaavan pitäisi verrata aina kunkin rivin ensimmäistä sanaa rivin muihin sanoihin ja ilmoittaa moniko näistä muista sanoista voidaan kirjoittaa käyttäen rivin ensimmäisen sanan kirjaimia.

Esimerkki:
1. rivin ensimmäisen sanan (ALEKO) kirjaimilla voidaan kirjoittaa myös rivillä olevat sanat AKKA ja LEKA, jolloin kaava palauttaisi arvon 2.
2. rivin ensimmäisen sanan (ATOMI) kirjaimilla voidaan kirjoittaa myös rivillä oleva sana MATTO, jolloin kaava palauttaisi arvon 1.

Samaa kirjainta voidaan siis käyttää useampaan kertaan (vrt. ALEKO - AKKA).

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu