Drop-down menu entered semi-automatic excel 2019 is it possible?

AZOUTE

New Member
Joined
Sep 25, 2023
Messages
15
Office Version
  1. 2019
Platform
  1. MacOS
Hello everyone,

Could I have help: I want to make a drop-down menu with semi-automatic entry but I am blocked by the FILTER function that unfortunately does not exist in Excel 2019 (I am on MAC and using the Excel 2019 version).
I would like to know if by using formulas, we can create an equivalent the FILTER function
Thanks in advance
AZOUTE

Classeur.xlsx
E
2#NAME?
Feuil1
Cell Formulas
RangeFormula
E2E2=FILTER(A2:A24,ISNUMBER(SEARCH(C2,A2:A24)),"Pas de résultat")
Cells with Data Validation
CellAllowCriteria
D2List=_xlfn.ANCHORARRAY($E$2)
E2Any value
Capture d’écran 2023-10-13 à 00.48.36.png
 
I adapted your formula like this : =SIERREUR(INDEX(tbl_Clients[#Tout];AGREGAT(15;6;LIGNE(tbl_Clients[Clients])/ESTNUM(CHERCHE(C$2;tbl_Clients[Clients]));LIGNES(E$2:E2)));"")
I got what I was looking for, your help was very precious to me. A big thank you.
You're welcome, but I have some comments.
  1. I wonder if you really want the first name returned if C2 is empty like your example above?

  2. That formula is not robust in my view. For example, here it is, working fine
23 10 16.xlsm
ABCDE
1Clients
2Daouda GUEYEinPatrick MORRAIN
3Serge LAFFONTPierre DUFFIN
4Patrick MORRAINBinta LY
5Astou KOULIBALYFélix DURHINOND
6Pierre DUFFINBinta TOURE
7Yve BERNARDCelestin MAURE
8Binta LY 
9Anta BARRY 
10Christophe DRUND 
11André BESTRAN 
12Félix DURHINOND 
13Donacien ALMERD 
14Khoudia DIALLO 
15George BRUNDEL 
16Moussa BEYE 
17Alphonse TOURE 
18Oulimata DIAW 
19Astou DIAW 
20Astou FALL 
21Binta TOURE 
22Anta SALL 
23Bruno MENDES 
24Celestin MAURE 
25Braham TALL 
26
Filter Replacement (3)
Cell Formulas
RangeFormula
E2:E25E2=IF(C$2="","",IFERROR(INDEX(tblClients[#All],AGGREGATE(15,6,ROW(tblClients[Clients])/ISNUMBER(SEARCH(C$2,tblClients[Clients])),ROWS(E$2:E2))),""))


However, if for some reason later any new rows are added at the top of the worksheet, the formulas return incorrect results. Example, if one row is added

23 10 16.xlsm
ABCDE
1
2Clients
3Daouda GUEYEinAstou KOULIBALY
4Serge LAFFONTYve BERNARD
5Patrick MORRAINAnta BARRY
6Astou KOULIBALYDonacien ALMERD
7Pierre DUFFINAnta SALL
8Yve BERNARDBraham TALL
9Binta LY 
10Anta BARRY 
11Christophe DRUND 
12André BESTRAN 
13Félix DURHINOND 
14Donacien ALMERD 
15Khoudia DIALLO 
16George BRUNDEL 
17Moussa BEYE 
18Alphonse TOURE 
19Oulimata DIAW 
20Astou DIAW 
21Astou FALL 
22Binta TOURE 
23Anta SALL 
24Bruno MENDES 
25Celestin MAURE 
26Braham TALL 
27
Filter Replacement (3)
Cell Formulas
RangeFormula
E3:E26E3=IF(C$3="","",IFERROR(INDEX(tblClients[#All],AGGREGATE(15,6,ROW(tblClients[Clients])/ISNUMBER(SEARCH(C$3,tblClients[Clients])),ROWS(E$3:E3))),""))


Points 1 and 2 above could be addressed with these changes to the formula.

23 10 16.xlsm
ABCDE
1Clients
2Daouda GUEYEinPatrick MORRAIN
3Serge LAFFONTPierre DUFFIN
4Patrick MORRAINBinta LY
5Astou KOULIBALYFélix DURHINOND
6Pierre DUFFINBinta TOURE
7Yve BERNARDCelestin MAURE
8Binta LY 
9Anta BARRY 
10Christophe DRUND 
11André BESTRAN 
12Félix DURHINOND 
13Donacien ALMERD 
14Khoudia DIALLO 
15George BRUNDEL 
16Moussa BEYE 
17Alphonse TOURE 
18Oulimata DIAW 
19Astou DIAW 
20Astou FALL 
21Binta TOURE 
22Anta SALL 
23Bruno MENDES 
24Celestin MAURE 
25Braham TALL 
26
Filter Replacement (3)
Cell Formulas
RangeFormula
E2:E25E2=IF(C$2="","",IFERROR(INDEX(tblClients[Clients],AGGREGATE(15,6,(ROW(tblClients[Clients])-ROW(tblClients[#Headers]))/ISNUMBER(SEARCH(C$2,tblClients[Clients])),ROWS(E$2:E2))),""))



Why the formula was not written automatically in cells E3, E4, E5...etc: I would like it to be dynamic
Because Excel 2019 and earlier versions did not support dynamic arrays like MS365 does.
 
Upvote 0

Excel Facts

Lock one reference in a formula
Need 1 part of a formula to always point to the same range? use $ signs: $V$2:$Z$99 will always point to V2:Z99, even after copying
=IF(C$3="","",IFERROR(INDEX(tblClients[#All],AGGREGATE(15,6,ROW(tblClients[Clients])/ISNUMBER(SEARCH(C$3,tblClients[Clients])),ROWS(E$3:E3))),""))


Hi, Peter_SSs
Thank you again for your precious remarks: I will take them into account.

In any case, you helped me a lot first, with your formulas but also by allowing me to discover and understand a little the AGGREGATE function.

I wonder if you really want the first name returned if C2 is empty like your example above?
The return of first names (if C2 is empty) gives me the advantage for autocomplete. I created a drop-down menu in cell D2 and slightly modifying your formula by inserting a void between the red quotation marks
=SI(C$3=" ";"";SIERREUR(INDEX(A:A;AGREGAT(15;6;LIGNE(tbl_Clients[Clients])/ESTNUM(CHERCHE(C$3;tbl_Clients[Clients]));LIGNES(E$3:E3)));"")).)

Menuderoulsaisisemiauto.xlsx
E
2Daouda GUEYE
Feuil1
Cell Formulas
RangeFormula
E2E2=IF(C$3=" ","",IFERROR(INDEX(A:A,AGGREGATE(15,6,ROW(tbl_Clients[Clients])/ISNUMBER(SEARCH(C$3,tbl_Clients[Clients])),ROWS(E$3:E3))),""))


This allows me to make an automatic autocomplete of the surnames and first names in cell D2. (see attached image)

Merci encore pour tout
AZOUTE
 

Attachments

  • screensh.png
    screensh.png
    194.3 KB · Views: 0
Upvote 0
Because Excel 2019 and earlier versions did not support dynamic arrays like MS365 does.

I asked the question because I noticed that with the SEARCH function, (Excel 2019 does it).
The formula I typed in cell E2 as soon as I validated was automatically written in cells E3, E4, E5,... to E16. You'll notice with me that the formulas in cells E3, E4, E5,... to E16 are grayed out: these are the same effects I wanted to get with this formula:
=SIERREUR(INDEX(tbl_Clients[#Tout];AGREGAT(15;6;LIGNE(tbl_Clients[Clients])/ESTNUM(CHERCHE(C$2;tbl_Clients[Clients]));LIGNES(E$2:E2)));"")

But now I have to do it manually (to copy the formula).

Menuderoulsaisisemiauto.xlsx
ABCDE
1Clientèle
2Donacien ALMERDDTRUE
3Khoudia DIALLOTRUE
4George BRUNDELTRUE
5Moussa BEYEFALSE
6Binta LYFALSE
7Anta BARRYFALSE
8Serge LAFFONTFALSE
9Patrick MORRAINFALSE
10Daouda GUEYETRUE
11Pierre DUFFINTRUE
12Yve BERNARDTRUE
13Astou KOULIBALYFALSE
14Christophe DRUNDTRUE
15André BESTRANTRUE
16Félix DURHINONDTRUE
Feuil2
Cell Formulas
RangeFormula
E2:E16E2=ISNUMBER(SEARCH(C2,Tab_Clientele[Clientèle]))
Dynamic array formulas.
 
Upvote 0
I do not have Excel 2019 or a Mac to test/check what you are reporting, however a number of things about your results/Excel version(s) are not making much sense to me.

When you select cell E2 in that last sample worksheet, what do you see in the formula bar?
=ISNUMBER(SEARCH(C2,Tab_Clientele[Clientèle]))
or
{=ISNUMBER(SEARCH(C2,Tab_Clientele[Clientèle]))}

I am asking because according to this Microsoft article dynamic array formulas were introduced into Microsoft 365 and may show in older versions as a legacy array formula (one that would have been entered into an older version with Ctrl+Shift+Enter, not just Enter)

Another thing that is not making sense to me is that you say you are using Excel 2019 on a Mac. According to the XL2BB instructions, XL2BB is not compatible with that combination so I'm wondering how you produced that XL2BB Mini Sheet.
 
Upvote 0
When you select cell E2 in that last sample worksheet, what do you see in the formula bar?
Here is the answer to this question :
=ESTNUM(CHERCHE(C2;Tab_Clientele[Clientèle]))

NB: I have exactly the same in cells E3, E4, E5,... to E16 but the writings are grayed out

Another thing that is not making sense to me is that you say you are using Excel 2019 on a Mac. According to the XL2BB instructions, XL2BB is not compatible with that combination so I'm wondering how you produced that XL2BB Mini Sheet.
I use Microsoft® Excel for Mac, Version 16.78 (23100802), License: Volume License 2019
See attached image file (Capture d'écran)

According to the XL2BB instructions, XL2BB is not compatible with that combination so I'm wondering how you produced that XL2BB Mini Sheet.
The XL2BB tab, the selection of E2 and the formula in the bar.
See attached image (XL2BB)

Merci
AZOUTE
 

Attachments

  • Capture d’écran .png
    Capture d’écran .png
    135.3 KB · Views: 3
  • XL2BB.png
    XL2BB.png
    221 KB · Views: 3
Upvote 0
Thanks for the extra images/information. As I said, I don't have similar hardware or software and was only going on the articles referred to (& I think that I may have mis-interpreted the Microsoft article). 😎
Anyway, if you don't have the 365 functions but do have spill ranges, see what this formula does for you.

AZOUTE.xlsm
ABCDE
1Clients
2Daouda GUEYEinPatrick MORRAIN
3Serge LAFFONTPierre DUFFIN
4Patrick MORRAINBinta LY
5Astou KOULIBALYFélix DURHINOND
6Pierre DUFFINBinta TOURE
7Yve BERNARDCelestin MAURE
8Binta LY
9Anta BARRY
10Christophe DRUND
11André BESTRAN
12Félix DURHINOND
13Donacien ALMERD
14Khoudia DIALLO
15George BRUNDEL
16Moussa BEYE
17Alphonse TOURE
18Oulimata DIAW
19Astou DIAW
20Astou FALL
21Binta TOURE
22Anta SALL
23Bruno MENDES
24Celestin MAURE
25Braham TALL
26
27
Filter Replacement (3)
Cell Formulas
RangeFormula
E2:E7E2=IF(C$2="","",IFERROR(INDEX(tblClients[Clients],AGGREGATE(15,6,(ROW(tblClients[Clients])-ROW(tblClients[#Headers]))/ISNUMBER(SEARCH(C$2,tblClients[Clients])),ROW(INDIRECT("1:"&COUNTIF(tblClients[Clients],"*"&C$2&"*"))))),""))
Dynamic array formulas.
 
Last edited:
Upvote 0
As I said, I don't have similar hardware or software
I totally agree with you and I appreciate with great value the help you have given me.
Anyway, if you don't have the 365 functions but do have spill ranges, see what this formula does for you.
=SI(C$2="";"";SIERREUR(INDEX(tbl_Clients[Clients];AGREGAT(15;6;(LIGNE(tbl_Clients[Clients])-LIGNE(tbl_Clients[#Headers]))/ESTNUM(CHERCHE(C$2;tbl_Clients[Clients]));LIGNE(INDIRECT("1:"&NB.SI(tbl_Clients[Clients];"*"&C$2&"*")))));""))

In this formula [#Headers] returns an error. I removed [#Headers] in the formula to eliminate the returned error.

Thus, the formula seems interesting because it pours well into the spill range but it displays in redundancy the value of the first cell of the tbl_Clients table.
Comparing with the old formula in G2, we see that indeed the same amount of cell values returned by the two formulas.

Menuderoulsaisisemiauto.xlsx
ABCDEFGH
1ClientsRecherche
2Daouda GUEYEouDaouda GUEYEDaouda GUEYE
3Serge LAFFONTouDaouda GUEYEAstou KOULIBALY
4Patrick MORRAINDaouda GUEYEKhoudia DIALLO
5Astou KOULIBALYDaouda GUEYEMoussa BEYE
6Pierre DUFFINDaouda GUEYEAlphonse TOURE
7Yve BERNARDDaouda GUEYEOulimata DIAW
8Binta LYDaouda GUEYEAstou DIAW
9Anta BARRYDaouda GUEYEAstou FALL
10Christophe DRUNDDaouda GUEYEBinta TOURE
11André BESTRANDaouda GUEYEAliou Samb
12Félix DURHINONDDaouda GUEYEAlioune THIOR
13Donacien ALMERD 
14Khoudia DIALLO 
15George BRUNDEL 
Feuil1
Cell Formulas
RangeFormula
E2:E12E2=IF(C$2="","",IFERROR(INDEX(tbl_Clients[Clients],AGGREGATE(15,6,(ROW(tbl_Clients[Clients])-ROW(tbl_Clients))/ISNUMBER(SEARCH(C$2,tbl_Clients[Clients])),ROW(INDIRECT("1:"&COUNTIF(tbl_Clients[Clients],"*"&C$2&"*"))))),""))
G2:G15G2=IF(C$3=" ","",IFERROR(INDEX(A:A,AGGREGATE(15,6,ROW(tbl_Clients[Clients])/ISNUMBER(SEARCH(C$3,tbl_Clients[Clients])),ROWS(E$3:E3))),""))
Dynamic array formulas.
Cells with Data Validation
CellAllowCriteria
D2List=$E$2:$E$2
 
Upvote 0
I removed [#Headers] in the formula to eliminate the returned error.
Of course removing part of a formula to eliminate an error is more than likely to introduce another error - as it did by not returning the correct results. :)

I think it is just that you needed to translate #Headers (since it is not an actual column heading) into French. Try this instead

=SI(C$2="";"";SIERREUR(INDEX(tblClients[Clients];AGREGAT(15;6;(LIGNE(tblClients[Clients])-LIGNE(tblClients[#En-têtes]))/ESTNUM(CHERCHE(C$2;tblClients[Clients]));LIGNE(INDIRECT("1:"&NB.SI(tblClients[Clients];"*"&C$2&"*")))));""))

Edit: Oops, I think your table name is actually tbl_Clients
 
Upvote 1
Solution
Of course removing part of a formula to eliminate an error is more than likely to introduce another error - as it did by not returning the correct results. :)
Like what it's not always the most the solution :ROFLMAO:
I think it is just that you needed to translate #Headers (since it is not an actual column heading) into French. Try this instead
Indeed, it works 5/5 !
Thank you very much. I'm going to look at the formula to understand it well (you gave me a thread)

Thank you again for your precious help

AZOUTE
 
Upvote 0
Like what it's not always the most the solution
OUPS : As it is not always the simplest, the solution

I really appreciated your promptness and efficiency

Thank you very much.
AZOUTE
 
Upvote 0

Forum statistics

Threads
1,215,184
Messages
6,123,533
Members
449,106
Latest member
techog

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top