Delete the string after the delimiter in excel - excel

I have simple problem. I was analyzing some data and came up with this problem.
Below is my value in a colomn:
www.mysite.come/api/Customer?id=12333&name=jack
www.mysite.come/api/Department?id=52365&name=COP
www.mysite.come/api/Customer?id=13333&name=mathew
etc
I want to filter this data something like this
www.mysite.come/api/Customer
www.mysite.come/api/Department
www.mysite.come/api/Customer
Please help me with this.

If its just as simple as removing everything after, including, the ? then this will do it:
=LEFT(A:A,FIND("?", A1)-1)
Edit: If you want to catch the #VALUE! error when there is no ? simply use IFERROR:
=IFERROR(LEFT(A:A,FIND("?", A1)-1), A1)
Example rows:
www.mysite.come/api/Customer?id=12333&name=jack
www.mysite.come/api/Department?id=52365&name=COP
www.mysite.come/api/Customer?id=13333&name=mathew
Output:
www.mysite.come/api/Customer
www.mysite.come/api/Department
www.mysite.come/api/Customer

I think you need to use a combination of FIND and LEFT.
For example (where A1 contains your original value)
=LEFT(A1, FIND("?", A1) -1)

The significance of your mention of filter is not clear to me but you might copy your data into another column, select the latter column and with Find/Replace Find what:
~?*
Replace All.

Its a good idea to handle when when the column doesn't contain the "?". To do this use the ISERROR() function as follows:
=LEFT(A2, IF(ISERROR(FIND("?",A2))=TRUE,LEN(A2), (FIND("?",A2)-1)))

Related

Extract Parameter from URL Excel

does anybody has an excel formula for me which just gives me back the clickid parameter? Unfortunately this parameter is not always at the same position so I can't fix it with character count. It should always be between &clickid= and &
https://app.appsflyer.com/id770725904?pid=website_adwords&c=C_DEU_billig&tl_rf=https%3A%2F%2Fwww.google.com%2F&tl_nw=g&tl_mt=e&clickid=EAIaIQobChMIj5zchvqs4AIVQamaCh06NQlOEAAYASACEgJhRPD_BwE&af_keywords=billig+telefonieren+nach+iran&af_c_id=1597316081&af_adset_id=60710335432&af_ad_type=1t1&af_adset=Iran&af_ad_id=303032652682
Well for sure a regular expression will be able to find this, but a rather simple formula could do the trick aswell. For example:
=MID(A1,FIND("clickid=",A1)+8,FIND("&",A1,FIND("clickid=",A1)+8)-(FIND("clickid=",A1)+8))
This will work but someone may have a tidier option ...
=LEFT(SUBSTITUTE(MID(A1,FIND("clickid",A1),1000),"clickid=", ""),FIND("&",SUBSTITUTE(MID(A1,FIND("clickid",A1),1000),"clickid=", ""))-1)
Throw your URL into cell A1 and test it out.

Excel VLOOKUP issue

I have a problem on a VLOOKUP function in an Excel.
Basically i am trying to search a route from another spreadsheet, using a reference number.
- example: I put in a reference (lets say WPC 80) and i want to get a route (for this ex it should be Pitesti - Wrzesnia:
The problem is that it gives me something random.
I know that maybe im not using it correctly, but do you have any idea?
Thank you!
As noted in VLOOKUP documentation, the last parameter contols whether to use Exact Match or Approximate Match.
Try using exact matching:
=VLOOKUP(..., FALSE)
Sorry not enough rep to post a comment. When using vlookup, and the Range_Lookup parameter is TRUE, the lookup table must be sorted in ascending order, or you will get unusual results. Also ensure you put an absolute reference on the lookup table for when you drag it down.
Better use INDEX and MATCH combination, faster and far more reliable.

Finding question marks in cell string

I would like to find out if a string within a cell in Excel 2010 contains any of the following, and then return a '1'.
?dementia
? dementia
dementia?
dementia ?
I've tried some formulas but they don't seem able to get past the use of the wildcard and the string when combined.
Would anyone have any pointers or advice?
Here is a combination of the suggested answers, and my own work around:
This is the formula you need:
=IF(IFERROR(FIND(A2,$C$3),0)>0,1,0)
where A2 is the string that you are trying to check.
Assuming you don't want to include word ? word and return 1, you can use something like this:
=IF(OR(LEFT(A1,1)="?",RIGHT(A1,1)="?"),1,"")
You will want to use the FIND function (Documentation).
Make sure your search term in in quotation marks.
If you are still having trouble with wildcards, you can try the CHAR function (Documentation). It will return the character as a string. In your case, to get a ?, you would use CHAR(63). I use this chart to keep track of CHAR codes (just use the number and ignore the "Alt")
REVISED:
If I understand the question correctly, you are trying to search long string in a short string list.
The formula you can use is:
=ISTEXT(LOOKUP(99^99,SEARCH(SUBSTITUTE($A$2:$A$5,"?","|"),SUBSTITUTE(C2,"?","|")),$A$2:$A$5))*1
The problem with my prior formula is due to that ? mark because it is being treated as a wild card. Here I have replace it with | (you can change this to a character that you will never use but avoid ? and *). This should work for you now.

Replacing a section of the data in a cell for thousands of excel data

I have a large spreadsheet with column data like:
ABC:1:I.0
ABC:1:I.1
ABC:1:I.2
ABC:1:I.3
ABC:2:I.0
ABC:2:I.1
ABC:2:I.2
ABC:2:I.3
ABC:3:I.0
ABC:3:I.2
ABC:3:I.3
ABC:4:I.0
ABC:4:I.1
ABC:4:I.2
ABC:4:I.3
ABC:5:I.0
ABC:5:I.1
ABC:5:I.2
ABC:5:I.3
ETC.
I need to replace the above with the following:
ABC:I.Data[1].0
ABC:I.Data[1].1
ABC:I.Data[1].2
ABC:I.Data[1].3
ABC:I.Data[2].0
ABC:I.Data[2].1
ABC:I.Data[2].2
ABC:I.Data[2].3
ABC:I.Data[3].0
ABC:I.Data[3].2
ABC:I.Data[3].3
ABC:I.Data[4].0
ABC:I.Data[4].1
ABC:I.Data[4].2
ABC:I.Data[4].3
ABC:I.Data[5].0
ABC:I.Data[5].1
ABC:I.Data[5].2
ABC:I.Data[5].3
ETC.
Here is a sample of the data, most of the data follows a similar format with the exception of the naming "ABC", which can vary in size, so it might be "ABCD" and also with the exception of the letter "I", it can be "O" as well. Also, some might be missing some values such as ABC:3:I.1 which is missing from the data. I am not too familiar with excel formulas or VBA code. Does anyone know how to do this? I have no preference on which method it has to be done in as I don't mind learning some VBA code if someone provides me with a VBA solution.
I was thinking of using some sort of loop along with some conditional statements.
Thanks!
Please try:
=LEFT(F11,FIND(":",F11))&MID(F11,FIND(":",F11,6)+1,1)&".Data["&MID(F11,FIND(":",F11,2)+1,1)&"]."&RIGHT(F11,1)
copied down to suit, assuming placed in Row11 and your data is in ColumnF starting in Row11.
Curiosities:
When this A was first posted it attempted to address only the tabulated example input and output. I temporarily deleted that version while addressing that what was in the table as ABC might at times be ABCD and that what was I might at times be O.
OP has posted an answer that I edited to make no visible change but which shows as the deletion of two characters. A copy of the OP’s formula exhibited a syntax error prior to my edit.
OP suggested an edit to my answer but this was rejected by the review process. As it happens, I think the edit suggestion was incorrect.
I have edited my answer again to include these ‘curiosities’ and to match the cell reference used by the OP in his answer.
=LEFT(A1,SEARCH(":",A1)) & MID(A1, SEARCH(".",A1)-1, 2) &
"Data[" & MID(A1,SEARCH(":",A1)+1,1) & "]" & RIGHT(A1,2)
With the help of pnuts I was able to come up with my own solution:
=LEFT(F11,LEN(F11)-5)&MID(F11,LEN(F11)-2,2)&"Data["&MID(F11,LEN(F11)-4,1)&"]"&RIGHT(F11,2)
My solution works based on the fact that the length of the last six values in the string ABC:1:I:0 will always be the same in size for all the data I have, hence you see LEN(F11)-some number in my code. The only part of the string that changes in size is the first part, in this case ABC which can also be ABCDEF, etc.
If you'd like to use formulas rather than VBA, an easy option is to split the data into 4 columns, using the Text To Columns option - first split using the colon as a delimiter, then using a full-stop / period as a delimiter.
Once you have 4 columns of data (one for each block), you can use the Concatenate function to join them and add in the extra characters: =CONCATENATE(A1,":",C1,".","Data[",B1,"].",D1)
This should still work if you have extra / alternative characters (eg ABCD instead of ABC), as long as you have the same delimiters, but obviously you'd need to test to make sure.

Using trim function on table references

I'm attempting to aggregate from an imported data source in excel. I have 2 combo boxes that specify conditions for a sumifs function (selected using offsets).
Where I struggle is that the data doesn't seem to match unless I use a trim function (I tested this on by adding a column to the data table).
The following formula always returns 0
=SUMIFS(Table_ExternalData_1[RedFlag],Table_ExternalData_1[RAGSTATUS],"=trim("&ReconAggregation!$A4&")",Table_ExternalData_1[ClientDescription],"=trim("&OFFSET(Lists!$A$1,Lists!$B$1,0)&")", Table_ExternalData_1[AgencyDescription],"=trim("&OFFSET(Lists!$C$1,Lists!$D$1,0)&")")
when I add the trims
=SUMIFS(Table_ExternalData_1[RedFlag],trim(Table_ExternalData_1[RAGSTATUS]),"=trim("&ReconAggregation!$A4&")",trim(Table_ExternalData_1[ClientDescription]),"=trim("&OFFSET(Lists!$A$1,Lists!$B$1,0)&")", trim(Table_ExternalData_1[AgencyDescription]),"=trim("&OFFSET(Lists!$C$1,Lists!$D$1,0)&")")
it tells me that I have a formula error. Any idea why? Is there a better way to do this?
Cheers,
G
it tells me that I have a formula error
Maybe there's problem with your "
=SUMIFS(Table_ExternalData_1[RedFlag],trim(Table_ExternalData_1[RAGSTATUS]),"=trim('&ReconAggregation!$A4&')",trim(Table_ExternalData_1[ClientDescription]),"=trim('&OFFSET(Lists!$A$1,Lists!$B$1,0)&')", trim(Table_ExternalData_1[AgencyDescription]),"=trim('&OFFSET(Lists!$C$1,Lists!$D$1,0)&')")
As It happens, the "=" were not required on the right hand side. This was found through trial and error. Still unsure as to why the trim function on the left prompted an error, but with additional cleansing of the source data it wasn't required. Thanks all for your input.

Resources