excel > formule overnemen waarde bij bepaalde voorwaarden

Pagina: 1
Acties:

Vraag


  • Felke
  • Registratie: September 2004
  • Laatst online: 20:14
Hi,

Ik kom er niet helemaal uit en heb jullie hulp nodig!
Wat ik graag zou willen;

Waarde in kolom "B" overnemen indien de waarde in kolom "A" en kolom "G" een 1 heeft.
Dus, zodra er staat "used by PM" en "Design", dan neemt hij het nummer "680000" over.
Indien dit NIET het geval is, moet hij naar de volgende regel gaan.
Op deze manier vul ik een tabel gefiltered op "used by PM" en "Design".

tabel

Wat heb ik al geprobeerd.
=if(A1=G1,"B1",if(A2=G2,"B2"), etc)

echter, omdat ik een stuk of 100 rijen heb duurt het opzetten van deze formule nogal lang.. en het lijkt mij ook niet fail proof.

Weten jullie een betere opzet?

Beste antwoord (via Felke op 04-04-2017 09:51)


  • Atanamir
  • Registratie: December 2014
  • Laatst online: 09-11 07:44
Wat moet de formule precies doen eigenlijk? Klinkt alsof je het nummer terug wilt krijgen van de eerste rij waarbij zowel in kolom A als kolom G een 1 staat.

Er zijn in dat geval een paar oplossingen te bedenken, maar ik twijfel nog of het niet makkelijker kan...

1: {=INDEX($B$1:$B$100;MATCH("1"&"1";$A$1:$A$100&$G$1:$G$100;0))}
(Array formule, combinatie INDEX en MATCH. Match zoekt op 2 criteria, namelijk '1' in kolom A en '1' in kolom G. De eerste rij waarin een match wordt gevonden gebruik je om in de index formule het resultaat uit kolom B terug te geven.

2: SUMPRODUCT(($A$2:$A$100=1)*($G$2:$G$100=1);$B$2:$B$100)
Deze werkt alleen als er slechts op 1 rij in kolom A een '1' staat. Indien er meerdere rijen zijn waar dit voorkomt werkt bovenstaande formule niet meer. Tevens moet het nummer in kolom B wel numeriek zijn. Zodra dit niet het geval is zal de formule een error geven...

Maar wellicht dat iemand anders nog een makkelijkere oplossing heeft...

[ Voor 6% gewijzigd door Atanamir op 03-04-2017 10:47 ]

Alle reacties


Acties:
  • Beste antwoord

  • Atanamir
  • Registratie: December 2014
  • Laatst online: 09-11 07:44
Wat moet de formule precies doen eigenlijk? Klinkt alsof je het nummer terug wilt krijgen van de eerste rij waarbij zowel in kolom A als kolom G een 1 staat.

Er zijn in dat geval een paar oplossingen te bedenken, maar ik twijfel nog of het niet makkelijker kan...

1: {=INDEX($B$1:$B$100;MATCH("1"&"1";$A$1:$A$100&$G$1:$G$100;0))}
(Array formule, combinatie INDEX en MATCH. Match zoekt op 2 criteria, namelijk '1' in kolom A en '1' in kolom G. De eerste rij waarin een match wordt gevonden gebruik je om in de index formule het resultaat uit kolom B terug te geven.

2: SUMPRODUCT(($A$2:$A$100=1)*($G$2:$G$100=1);$B$2:$B$100)
Deze werkt alleen als er slechts op 1 rij in kolom A een '1' staat. Indien er meerdere rijen zijn waar dit voorkomt werkt bovenstaande formule niet meer. Tevens moet het nummer in kolom B wel numeriek zijn. Zodra dit niet het geval is zal de formule een error geven...

Maar wellicht dat iemand anders nog een makkelijkere oplossing heeft...

[ Voor 6% gewijzigd door Atanamir op 03-04-2017 10:47 ]


Verwijderd

Beste Felke,

Helaas is mij het probleem niet helemaal helder.
Het is de vraag naar welke kolom je de waarde van kolom B wilt overnemen.
Volgens mij is het gebruik van een hulpkolom (invoegen kolom bijvoorbeeld C) met daarin de formule:
C1=if(A1=G1,B1)
al voldoende. Deze formule kun je naar beneden uitvullen. Op deze kolom kun je dan eventueel filteren.
Je probeert nu de intelligentie van alle rijen in 1 cel samen te voegen.

Kun je me ietsje meer vertellen over wat je wilt bereiken ?

Gr. TBuilder 8)

  • Felke
  • Registratie: September 2004
  • Laatst online: 20:14
Wat ik graag wil is dat de formule bij een 1 in A en een 1 in G het cijfer overneemt van kolom B.
Deze waarde moet naar een andere sheet worden overgenomen.
Er mogen geen lege rijen tussen zitten.. dus in dit geval zal de oplossing C1=if(A1=G1,B1) niet werken.

overigens heb ik het nu al anders opgelost. Toch bedankt voor de oplossingen.

[ Voor 13% gewijzigd door Felke op 04-04-2017 09:54 ]


  • heuveltje
  • Registratie: Februari 2000
  • Laatst online: 20:47

heuveltje

KoelkastFilosoof

Felke schreef op maandag 3 april 2017 @ 09:37:
Hi,

Ik kom er niet helemaal uit en heb jullie hulp nodig!
Wat ik graag zou willen;

Waarde in kolom "B" overnemen indien de waarde in kolom "A" en kolom "G" een 1 heeft.
Dus, zodra er staat "used by PM" en "Design", dan neemt hij het nummer "680000" over.
Indien dit NIET het geval is, moet hij naar de volgende regel gaan.
Op deze manier vul ik een tabel gefiltered op "used by PM" en "Design".

[afbeelding]

Wat heb ik al geprobeerd.
=if(A1=G1,"B1",if(A2=G2,"B2"), etc)

echter, omdat ik een stuk of 100 rijen heb duurt het opzetten van deze formule nogal lang.. en het lijkt mij ook niet fail proof.

Weten jullie een betere opzet?
is een VBA macro out of the question ?
anders word het simpel
code:
1
2
3
4
5
6
7
8
  for rij is 1 to 1000
      alles1 = true
      for kolom = 1 to 100
         if cells(rij,kolom).value <> 1  then alles1 is false
      next kolom
      if alles1 = true then cells(rij,101)="waar"
      else cells(rij,101) = "onwaar"
next rij

Heuveltjes CPU geschiedenis door de jaren heen : AMD 486dx4 100, Cyrix PR166+, Intel P233MMX, Intel Celeron 366Mhz, AMD K6-450, AMD duron 600, AMD Thunderbird 1200mhz, AMD Athlon 64 x2 5600, AMD Phenom X3 720, Intel i5 4460, AMD Ryzen 5 3600 5800x3d