Just nu i M3-nätverket
Gå till innehåll
Mikael63

LÖST Kontrollfunktion IO

Rekommendera Poster

Mikael63

Det här borde jag kanske kunna lösa själv men det skulle troligen bli en klumpig och ful lösning. Eftersom jag är lat av naturen vänder jag mig hit, igen.

Jag skulle vilka kontrollera värden i helst flera steg på en gång och man behöver ta hänsyn till att värdena inte nödvändigtvis är sorterade på ett visst sätt.

Dessa värden finns inte i Excel "från början" utan är inklistrade och även om jag då i Excel kan sortera så kan jag inte göra det i källan.

Den allra enklaste kontrollen är att se till att dessa "lirar ihop".

1	I1.0
2	I1.1
3	I1.2
4	I1.3
5	I1.4
6	I1.5
7	I1.6
8	I1.7
9	I2.0
10	I2.1
11	I2.2
12	I2.4
13	I2.4
14	I2.5
15	I2.6
16	I2.7

Här finns ett fingerat fel, ja eller kanske två fel. I2.4 finns på två ställen, en I2.4 ska vara I2.3.

 

Om det av någon anledning skulle vara så att ex 8 & 9 har bytt plats så måste även I1.7 och I2.0 byta plats. Eller ev. omvänt då. Jag vill få en färmarkering eller en text i angränsande cell som indikerar en avvikelse.

Det här är bara en del av den totala funktionen för det finns fler värden, ja och sedan ännu fler än dessa:

1	I3.0
2	I3.1
3	I3.2
4	I3.3
5	I3.4
6	I3.5
7	I3.6
8	I2.7
9	I4.0
10	I4.1
11	I4.2
12	I4.3
13	I4.4
14	I4.5
15	I4.6

 

Här har jag petat in ett fel till. I2.7 finns redan på ett annat ställe.

Här skulle det räcka om jag får en notering om avvikelse, att det finns två I2.7 (en sådan kontrollfunktion har jag fått av Monshi tidigare)

 

Det finns ytterligare data att tillgå, i andra kolumner, men kanske det får räcka så här långt.

 

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MH_

1. Kolla om du kan göra en "bättre" import med hjälp av 

Data->"hämta och transformera"

Det ger diverse möjligheter som är lätt att glömma bort (+ frågan skapar ett inspelat makro (utan säkerhetsbegränsningar) som du kan manipulera)

 

2. oavsett importsätt

Jag antar att det är du redan kör Antal.om?

Dvs någonting i stil med:

=OM(ANTAL.OM(B:B;B1)=1;"";"dub(b)lett")

 

Den andra frågan/funktionen vet jag inte om jag förstår riktigt. 

Så här kan du upptäcka om b-kolumnen är i fel ordning med hjälp av "sortera", trots att den innehåller både bokstäver och tal.

=OM(SORTERA(B1:B16)=B1:B16;"";"Fel ordning")

=OM(SORTERA(B:B)=B:B;"";"Fel ordning")

 

Är det det du är ute efter?

Ähh, testa och återkom

 

 

https://support.microsoft.com/sv-se/office/sortera-funktionen-sortera-22f63bd0-ccc8-492f-953d-c20e8e44b86c

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Mikael63

1. Det är endast möjligt att klistra in värden från urklipp i Excel

 

2. Vet knappt, det är denna tråd https://eforum.idg.se/topic/334895-hitta-förekomster-av-tre-lika-cellvärden/ men jag har inte tillämpat den funktionen för den typ av värden som är aktuell i denna tråd. Men använder den flitigt så som den var ämnad för.

 

3. Fel ordning kan det få vara bara kolumnerna lirar ihop.

Den vänstra kolumnen är en uttagsbeteckning, den högra är adresser.

Det får bara finnas en unik adress för alla rader men uttagsbeteckningarna återkommer.

Uttag 1 har alltid *.0, uttag 2 alltid *.1 osv. till uttag 9 där det börjar om med *.0 och där siffran före . är 1 mer än den för uttag 1.

Varje grupp om 1-16 har en (gemensam) beteckning ex. -D1.1, nästa 16 har då -D1.2 osv.

 

Så för att krångla till det får det bara finnas en rad som har kombon -D1.3, 9, I7.0 som exempel.

däremot är det inte säkert att alla 1-16 med -D1.3 är sorterade i "rätt ordning" och det är inte ens säkert att -D1.3 förekommer längre ner än -D1.2.

 

När jag har manipulerat lite med Excel och sedan ett eget skript för att skriva tillbaks värden till källan har jag, förenklat, klippt ut och klistrat in i Excel. I Excel har jag en "index"-kolumn, ex. A med 1-100.

Sedan kan jag sortera värden i bladet och då faktiskt efter ytterligare ett värde som inte behöver kontrolleras.

Därefter justera det som behövs och därefter sortera tillbaks enligt "index" för att få samma inbördes ordning som källan.

 

Dock gäller frågeställningen här bara hur jag kan kontrollera att allt ser ut att lira ihop.

Någon kontroll av saknade värden behöver inte ske. (ex. kan -D1.14, 16, I12.7 saknas eftersom den är reserv/oanvänd.

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MH_
Citat

Det får bara finnas en unik adress för alla rader 

Då borde den här räcka

=OM(ANTAL.OM(A:A;A1)=1;"";"dub(b)lett")

Citat

Så för att krångla till det får det bara finnas en rad som har kombon -D1.3, 9, I7.0 

Då räcker det väl att köra antal.omf() där du kollar om kombinationen finns mer än en gång?

=ANTAL.OMF(A:A;A1;B:B;B1)

Eller så här om det är tre värden

=ANTAL.OMF(A:A;A1;B:B;B1;C:C;C1)

 

Citat

Dock gäller frågeställningen här bara hur jag kan kontrollera att allt ser ut att lira ihop.

Jag vet inte om du kan göra så mycket mer än att leta dubbletter. Eftersom du har gluggar så kan du inte leta saknade värden osv

 

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Mikael63
1 timme sedan, skrev MH_:

Eller så här om det är tre värden

=ANTAL.OMF(A:A;A1;B:B;B1;C:C;C1)

Nja, den tycks kontrollera så att jag inte har två eller fler identiska rader, vilket är bra men det sker ex. ingen kontroll av

 

1 timme sedan, skrev Mikael63:

Det får bara finnas en unik adress för alla rader

Här nedan klistrar jag in mina just nu skarpa värden

-D1.1	1	I0.0
-D1.1	2	I0.1
-D1.1	3	I0.2
-D1.1	4	I0.3
-D1.1	5	I0.4
-D1.1	6	I0.5
-D1.1	7	I0.6
-D1.1	8	I0.7
-D1.1	9	I1.0
-D1.1	10	I1.1
-D1.1	11	I1.2
-D1.1	12	I1.3
-D1.1	13	I1.4
-D1.1	14	I1.5
-D1.1	15	I1.6
-D1.1	16	I1.7
-D1.2	1	I2.0
-D1.2	2	I2.1
-D1.2	3	I2.2
-D1.2	4	I2.3
-D1.2	5	I2.4
-D1.2	6	I2.5
-D1.2	7	I2.6
-D1.2	8	I2.7
-D1.2	9	I3.0
-D1.2	10	I3.1
-D1.2	11	I3.2
-D1.2	12	I3.3
-D1.2	13	I3.4
-D1.2	14	I3.5
-D1.2	15	I3.6
-D1.3	1	I4.0
-D1.3	2	I4.1
-D1.3	3	I4.2
-D1.3	4	I4.3
-D1.3	5	I4.4
-D1.3	6	I4.5
-D1.3	7	I4.6
-D1.3	8	I4.7
-D1.3	9	I5.0
-D1.3	10	I5.1
-D1.3	11	I5.2
-D1.3	12	I5.3
-D1.3	13	I5.4
-D1.3	14	I5.5
-D1.4	1	I6.0
-D1.4	2	I6.1
-D1.4	3	I6.2
-D1.4	4	I6.3
-D1.4	5	I6.4
-D1.4	6	I6.5
-D1.4	7	I6.6
-D1.4	8	I6.7
-D1.4	9	I7.0
-D1.4	10	I7.1
-D1.4	11	I7.2
-D1.4	12	I7.3
-D1.4	13	I7.4
-D1.4	14	I7.5
-D1.5	1	I8.0
-D1.5	2	I8.1
-D1.5	3	I8.2
-D1.5	4	I8.3
-D1.5	5	I8.4
-D1.5	6	I8.5
-D1.5	7	I8.6
-D1.5	8	I8.7
-D1.5	9	I9.0
-D1.5	10	I9.1
-D1.5	11	I9.2
-D1.5	12	I9.3
-D1.5	13	I9.4
-D1.5	14	I9.5
-D1.6	1	I10.0
-D1.6	2	I10.1
-D1.6	3	I10.2
-D1.6	4	I10.3
-D1.6	5	I10.4
-D1.6	6	I10.5
-D1.6	7	I10.6
-D1.6	8	I10.7
-D1.6	9	I11.0
-D1.6	10	I11.1
-D1.6	11	I11.2
-D1.6	12	I11.3
-D1.6	13	I11.4
-D1.6	14	I11.5
-D1.6	15	I11.6
-D1.6	16	I11.7
-D1.7	1	I12.0
-D1.7	2	I12.1
-D1.7	3	I12.2
-D1.7	4	I12.3
-D1.7	5	I12.4
-D1.7	6	I12.5
-D1.7	7	I12.6
-D1.7	8	I12.7
-D1.7	9	I13.0
-D1.7	10	I13.1
-D1.7	11	I13.2
-D1.7	12	I13.3
-D1.7	13	I13.4
-D1.7	14	I13.5
-D1.7	15	I13.6
-D1.8	1	I14.0
-D1.8	2	I14.1
-D1.8	3	I14.2
-D1.8	4	I14.3
-D1.8	5	I14.4
-D1.8	6	I14.5
-D1.8	7	I14.6
-D1.8	8	I14.7
-D1.8	9	I15.0
-D1.8	10	I15.1
-D1.8	11	I15.2
-D1.8	12	I15.3
-D1.8	13	I15.4
-D1.8	14	I15.5
-D1.9	1	I16.0
-D1.9	2	I16.1
-D1.9	3	I16.2
-D1.9	4	I16.3
-D1.9	5	I16.4
-D1.9	6	I16.5

Här är de dessutom sorterade på ett bra sätt men det är långt ifrån alla gånger.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MH_

Slå ihop villkoren?

=OCH(ANTAL.OMF(A:A;A1;B:B;B1;C:C;C1)=1;ANTAL.OM(C:C;C1)=1)

eller för att hitta de felaktiga

=Icke(OCH(ANTAL.OMF(A:A;A1;B:B;B1;C:C;C1)=1;ANTAL.OM(C:C;C1)=1))

=ELLER(ANTAL.OMF(A:A;A1;B:B;B1;C:C;C1)>1;ANTAL.OM(C:C;C1)>1)

 

Lägg på andra villkor du kommer på. T.ex "kontrollsiffran'" som bör stämma mellan B och C

=REST(B1-1;8)=HÖGER(C1;1)*1

 

=OM(ELLER(ANTAL.OMF(A:A;A1;B:B;B1;C:C;C1)>1;ANTAL.OM(C:C;C1)>1;REST(B1-1;8)<>HÖGER(C1;1)*1);"feeel";"")

 

Etc. Du får ljuga ihop villkoren längs vägen och hålla tungan rätt i mun.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Mikael63

Tack!

4 timmar sedan, skrev MH_:

=OM(ELLER(ANTAL.OMF(A:A;A1;B:B;B1;C:C;C1)>1;ANTAL.OM(C:C;C1)>1;REST(B1-1;8)<>HÖGER(C1;1)*1);"feeel";"")

Verkar ju ta båda typer av fel som jag ser det, dubbletter och att de inte lirar ihop och i praktiken torde detta räcka långt.

 

När jag försöker hårdtesta ser jag att man kan trilla dit om man litar blint på detta:

-D1.8   3     I14.2

-D1.8       I14.3      feeel

-D1.8   4     I14.4      feeel

-D1.8   6     I14.5

-D1.8   7     I15.6

-D1.8   8     I14.7

-D1.8   9     I15.0

-D1.8   10   I15.1

-D1.8   11   I15.2

-D1.8   12   I15.3

-D1.8   13   I15.4

-D1.8   14   I15.5

-D1.9   1     I16.0

 

röd 5 & 4 har bytt plats = fel vilket ju stämmer.

 

röd I15.6 ger inget fel eftersom det inte finns någon annan I15.6 att bråka med. Det skulle där ha varit I14.6 i stället.

Kanske inte inträffar i praktiken men det är samtidigt ett sådant fel som man lätt missar om man bara skummar igenom raderna.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MH_

Som sagt var du får stapla alla fel du kan komma på.

 

Om allt är sorterat kan du använda den här formeln kollar om "vänsterledet" av kolumn C är likadant som föregående rad:

=VÄNSTER(C2;SÖK(".";C2))<>VÄNSTER(C1;SÖK(".";C1))

Kan kombineras med ett villkor som kollar om det borde vara = föregående rad

=OCH((A2=A1);(B2>=9)=(B1>=9))

Slås ihop till 

=OCH((A2=A1);(B2>=9)=(B1>=9);VÄNSTER(C2;SÖK(".";C2))<>VÄNSTER(C1;SÖK(".";C1)))

Så får du en varning på den röda raden (och raden under).

Bygg på din tidigare formel

 

Om det inte är sorterat så blir det betydligt krångligare (eftersom matrisformler ogillar att hantera text)

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Mikael63

Tack.

Jag kör dina formler i varsin kolumn i stället för att försöka slå ihop dem.

Får testa mer senare, kanske med verkliga fel i stället för framtvingade sådana.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Mikael63
9 timmar sedan, skrev MH_:

=VÄNSTER(C2;SÖK(".";C2))<>VÄNSTER(C1;SÖK(".";C1))

Kan kombineras med ett villkor som kollar om det borde vara = föregående rad

=OCH((A2=A1);(B2>=9)=(B1>=9))

Slås ihop till 

=OCH((A2=A1);(B2>=9)=(B1>=9);VÄNSTER(C2;SÖK(".";C2))<>VÄNSTER(C1;SÖK(".";C1)))

Dessa fungerar inte. Jo, de fungerar kanske som formeln är skriven men de ger felaktig information.

 

Funderar på om det skulle vara bra om man kan ange startvärden för respektive kolumn och kontrollen då förhåller sig efter den informationen?

 

Då måste man så klart sortera men det kan jag "stå ut med".

 

Jag kan ex. ha -D2.4 överst och jag kan ha I30.0 överst i mina data.

Ja egentligen kan jag också ha 10 överst i B men då skulle  motsvarande I bli I31.1

Skulle då alltså kunna ange vad som skulle varit överst för att efterföljande ska stämma.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Mikael63

Jag tog

På 2020-09-23 på 14:00, skrev MH_:

Då borde den här räcka

=OM(ANTAL.OM(A:A;A1)=1;"";"dub(b)lett")

i en annan kolumn, ändrade till O istf. A och i O har jag =SAMMANFOGA(A1;"-";B1)

Då kan jag kolla att jag inte har ex. två -D1.2 1

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...