Whats the JIRA JQL to find issues containing strings in a path - jira

Here's a simple example - I have two JIRA issues, first contains /path2/file, second contains path2 without /. If I use this JQL: text ~ path2, then only the second issue shows up in search results.
Is there a setting I can change, a different JQL I can use, or some other trick that will get the first issue to show up in search results?
Note I'm using a local install of the latest JIRA, 7.4.4, right now. I also explicitly reindexed JIRA and it made no difference. These JQL did not work either:
text ~ "path2*"
text ~ "path2?"
Note that if change search term to something that is only letters, it actually works - it will find an issue with that term when part of a folder/path/directory
Update sept 12:
T1 issue contains in description "path2"
T2 issue contains in description "path2/file"
T3 issue contains in description "/path2/file"
T4 issue contains in description "/long/path2/file"
T5 issue contains in description "path"
T6 issue contains in description "path/file"
T7 issue contains in description "/path/file"
T8 issue contains in description "/long/path/file"
T9 issue contains in description "/long2/path2/file"
Issues appearing on JIRA 7.5.0 server (not cloud):
T1 T2 T3 T4 T5 T6 T7 T8 T9 JQL
5 6 7 8 text ~ "path"
1 text ~ "path?"
1 2 3 5 6 7 8 text ~ "path*"
1 text ~ "path2"
text ~ "path2?"
1 2 3 text ~ "path2*"
Summary - T4, T9 never found.
T8 found, so text ~ "path*" will match /long/path/file
Conclusion: the directory delimiter / is a word break (like whitespace)
only when letters are used (T8), not when letters and numbers (T4, T9).

Can you please give us the exact textual representation of those paths?
I just tried it (in my personal Cloud instance). I made three issues where the descriptions were:
test /path2/file test
test path2/file test
test path2 test
And the following JQL text ~ "path2*" found all of them.

did you ever try to search within the field "DESCRIPTION" instead of "text"?
There is a chance this post is outdated, but maybe this leads to a different behaviour.

Related

Formulating Google Sheets Query for Two Sheets with Match in Multivalued Cell - getting error

This is what I have so far, I am getting stuck where I would usually do the IN syntax also AND with SQL WHERE
See the images for explanation of the following:
An example data for A in sheet1:
cell1 = [A,B,C]
cell2 = [A,B]
Cell3 = [A]
Sheet: OverallGroups
Team
Projects
Bring
A,B,C
Frying
Oil, flour, sugar, chicken
A, B
Baking
Oil, flour, sugar
A
Crafting
Paper
Sheet: Jobs
Team
Projects
Due
Bring (Return Query here)
B
Frying
1/2/14
C
Frying
1/3/14
A
Frying
1/4/14
B
Baking
1/5/14
B
Baking
1/6/14
A
Crafting
1/7/14
A
Crafting
1/8/14
The sheet2 "jobs" has in column A just one letter out of the potential lists in cell1,2,3..., delimited by comma.
The format allowed the most condensed view of the jobs on the first sheet, then the jobs sheet expands them for specific when and where per project.
I know that is isn't conventional to have multivalued fields, but it was necessary to summarize the data view rather than have a flooded screen of replicates to manage missing elements in this school project.
An example problem:
I want to find WHERE TEAM A IN [A,B,C] exists in one instance and the related project from B in the query to explain what to bring to class. The selection returns one block of text content from C. And the condition that project matches the with the team letter.
=QUERY({OverallGroups'!A:C; Jobs'!A}, "Select C WHERE A matches '" & OverallGroups'!A:A & '" AND A matches " & Jobs'!A & "'")
I tried using
&TEXTJOIN()
but this works for one to one cells, and won't parse the inner list by the comma.
------------- Part 2 need to copy the links by query 11/28/22--------
I have a query in Google Sheets which will search a template of materials to bring for another expanded sheet which has unique answers, but I need the links to appear as a result from this query
The difficulty is in being able to import multiple links per cell and groups to sort bringing materials for by the query.
The best snippet of code for this I have gets an error from another post: =BYROW(A2:A,LAMBDA(each,filter(OverallGroups!C:C,ARRAYFORMULA(REGEXMATCH(OverallGroups!A:A,"(?i)"&each)),ARRAYFORMULA(REGEXMATCH(OverallGroups!C:C,"(?i)"&OFFSET(each,0,1))))))
"No matches are found in FILTER evaluation: #N/A"
This script on Google Sheets will provide the working data without hyperlinking...
=query('OverallGroups'!A:C;"Select C where A contains '"&A2&"' and B contains '"&B2&"'")
Please reference the data from these two tables to get the answer in the second table "what to bring" so that it references the links.
I'm glad it was useful! Here you have a multirow option:
=byrow(A2:A;lambda(each;if(each="";"";query('OverallGroups'!A:C;"Select C where A contains '"&each&"' and B contains '"&offset(each;0;1)&"'"))))
The answer is from Martín on this post (solved part I):
"Something like: =query('OverallGroups'!A:C;"Select C where A contains '"&A2&"' and B contains '"&B2&"'") should do the job for one row, Let me know"

Split first name(s) from last name in Google Sheets

I wanted to separate the last name in a cell from any and all first/middle names.
EG:
"Greg Smith"
"Andy H K Anderson"
"Tony & Amanda Ferguson"
Becomes
Greg | Smith
Andy H K | Anderson
Tony & Amanda | Ferguson
Couldn't find an answer here or on any other site. but I did manage to write my own formula that I wanted to share in case others run into this same problem. And perhaps someone else could make a better version.
FIRST NAME(S):
=LEFT(A2,MINUS(LEN(A2),LEN(INDEX(SPLIT(A2," "),0,COUNTA(SPLIT(A2," "))))))
LAST NAME:
=INDEX(SPLIT(A2," "),0,COUNTA(SPLIT(A2," ")))
An alternative way (using a single array formula) would be to use regexextract
=Arrayformula(if(len(A2:A), regexextract(A2:A, "(.+)\s([^\s]+)$"),))
The first capturing group (.+) extracts
every character .+
before the last space \s (in a 'greedy' way),
the second capturing group ([^\s]+) extracts
everything after the last space [^\s]+
to the end of the string $.

GAS - Concatenate Unique List + Sumifs

I am really struggling with this to come up with an easy way to do this in Google Sheets.
I need a unique list with filter.
Fairly straight forward:
Unique(Filter(UniqueRange,FilterRange,Criteria)
I need to sumifs that list. If i do it one row at a time, its fairly straight forward pointing one of my criterias to the result of #1 and copy it downward:
sumifs(SumRange, Criteria1Range, Criteria1, Criteria2Range, Criteria2))
What i am struggling with is, i do not know how far that unique list will go. So i do not know how far down to copy #2's formula. Its no big deal if i had unlimited rows but i need to output the results of the above to all show up in a single cell with a character between the results because i am trying to make all this fit in a "calendar" for a dashboard. Can this even be done?
Sample Data:
Apple | 2
Orange | 3
Red | 1
Green | 4
Orange | 5
Red | 2
Simple result i have now by letting the uniques list grow as needed on the left column and copying formula #2 downward on the right hand column:
Apple | 2
Orange | 8
Red | 3
Green | 4
My question again is, is there a way to have the below result all show up in a single cell and toss in a hyphen between the results?
Apple - 2
Orange - 8
Red - 3
Green - 4
EDIT:
Thank you all for the help.
#theMayer
You pointed me in the right direction and ended up solving my issue. Thank you!
#I'-'I
Helper columns will just not work for my needs.
What i ended up doing is modifying the solution a little. I modified it to have a " _ " between the data because the data had hyphens in it and it was confusing. As for the number formatting, ill just leave it out for now. Here is my final code along with an additional date filter in the select query:
ARRAYFORMULA(TRIM(CONCATENATE(QUERY({CHAR(10)&$G$3:$G,$F$3:$F,$A$3:$A},"select Col1,' _ ',sum(Col2) where Col3 = date '" & text(C3,"yyyy-MM-dd") & "' group by Col1 label sum(Col2) ''"))))
=ARRAYFORMULA(TRIM(CONCATENATE(QUERY({CHAR(10)&A1:A6,--("-"&B1:B6)},"select Col1,sum(Col2) group by Col1 label sum(Col2) ''"))))

replace everything after a character in Google spreadsheet

I did some searching and in openoffice and excel it looks like you can simply add an * at the beginning or end of a character to delete everything before and after it, but in Google spreadsheet this isn't working. Does it support this feature? So if I have:
keyword USD 0078945jg .12 N N 5748 8
And I want to remove USD and everything after it what do I use? I have tried:
USD* and (USD*) with regular expressions checked
But it doesn't work. Any ideas?
The * quantifier just needs to be applied to a dot (.) which will match any character.
To clarify: the * wildcard used in certain spreadsheet functions (eg COUNTIF) has a different usage to the * quantifier used in regular expressions.
In addition to options that would be available in Excel (LEFT + FIND) pointed out by pnuts, you can use a variety of regex tools available in Google Sheets for text searching / manipulation
For example, RegexReplace:
=REGEXREPLACE(A1,"(.*)USD.*","$1")
(.*) <- capture group () with zero or more * of any character .
USD.* <- exact match on USD followed by zero or more * of any character .
$1 <- replace with match in first capture group
Please try:
and also have a look at.
For spaces within keyword I suggest a helper column with a formula such as:
=left(A1,find("USD",A1)-1)
copied down to suit. The formula could be converted to values and the raw data (assumed to be in ColumnA) then deleted, if desired.
To add to the answers here, you can get into trouble when there are special characters in the text (I have been struggling with this for years).
You can put a frontslash \ in front of special characters such as ?, + or . to escape them. But I still got stuck when there were further special characters in the text. I finally figured it out after reading find and replace in google sheets with regex.
Example: I want to remove the number, period and space from the beginning of a question like this: 1. What is your name?
Go to Edit → Find and replace
In the Find field, enter the following: .+\. (note: this includes a space at the end).
Note: In the Find and replace dialogue box, be sure to check "Search using regular expressions" and "match case". Leave the Replace field blank.
The result will be this text only: What is your name?

Display a range of filtered values as a comma-delimited list in one cell on a Google sheet?

Two sheets, one called Core Data, one called Schedule. The Schedule sheet needs to take information about deadlines from Core Data and display it concatenated in deadline-order. (Simple example with numbers and letters instead of dates and tasks given below.)
Here's what I have so far in 'Schedule' (cell B2 specifically in this case):
=JOIN(", ", FILTER('Core Data'!A2:A, 'Core Data'!B2:B=A2))
It's saying no matches are found so I assume this is a problem with the filter component of the formula. However, I've checked the help pages and can't see a problem with the condition I've created.
The formula should:
Get all the values in the given range (cells A2 downward on a 'Core Data' sheet),
Filter them so that only those with certain values are selected. (The information from 'Core Data' should only be selected if the date in the same row on column B matches the date in the cell in the A column on the Schedule sheet.)
Join all these values together and list them as a comma-delimited list.
Example (without dates, for ease):
Core Data sheet:
A | B
-----
a | 5
b | 7
c | 5
d | 3
Schedule sheet (or what it should look like):
A | B
---------
3 | d
5 | a, c
7 | b
Any idea what is going wrong with my formula or if there is an easier way to solve this problem?
The error message I was getting in the cell is:
Error: No matches are found in FILTER evaluation.
It turns out that the cell I was trying this formula on simply had no matches from the filter (no dates corresponded) but instead of returning empty it threw an error. This sounds simple but it's an annoying quirk for me that the cell didn't end up empty which made me assume the formula was at fault.
While the example in the question works you can quickly break it by adding an extra row to the 'Schedule' table with "8" as the value in the A column and the formula in B:
A | B
---------
3 | d
5 | a, c
7 | b
8 | N/A
The "8" throws an error since it isn't found in the 'Core Data'.
Conversely, on my original spreadsheet, When I tried the formula in a cell which did correspond to a noted deadline, it worked.
I found the solution here is to add an IFERROR function to the formula to deal with this.
So a formula that works for this is:
=JOIN(", ", IFERROR(FILTER('Core Data'!A:A, 'Core Data'!B:B=A5)))
One does not use the second IFERROR argument as advised in Google's own helpsheet. I tried putting in an empty array at first ({}) but this threw a different error. It seems if you miss the argument out, the JOIN knows it has nothing to work with and the cell ends up with a nice blank value.

Resources