Counting occurences of a string (in a cell)

This is a little like the topic "Counting occurences of a word," except I want to be able to count how many times a specified search string occurs in a cell, not count how many cells contain the string. I would also like a formula that gave the offset of the starting character of the search string into the cell, such that a zero signified that the search string did not occur.
Basically, I want a general set of tools to parse a cell's string data, enabling me to determine where in the cell's string data each occurrence of another string is located & to extract parts of the string data relative to where the search string occurs.
For example, if the cell contains the string, "1ab2cd2e" I want to be able to extract "cd" & "e" based on the characteristic that they follow "2."

Here it is:
--(SCRIPT decoupeur.app]
Save the script as a Script, an Application or an Application Bundle named decoupeur
Put the file in the folder
<startup Volume>:Users:<yourAccount>:Library:Scripts:Applications:Numbers:
Maybe you would have to create the folder Numbers and even the folder Applications by yourself.
To use it,
Select the group of cells to convert
Copy to the clipboard
Select the destination cell
Goto Scripts > Numbers > decoupeur
You will be asked to define the separator to use.
Given the separator "2", the strings of the kind "1zer6sd2az2rt8aa2er7kkk5uu2a"
would be parsed and return az TAB rt TAB er TAB a
The converted values will be pasted at the cursor.
Yvan KOENIG 30juin 2008
property theApp : "Numbers"
property menuFenetre : 10
property premierNom : 6
property nomDuDocActif : ""
property theDelim : ""
property listeLignes : {}
property listeTemp : {}
property msg90 : ""
property msg91 : ""
property msg92 : ""
--=============
on run
tell application "System Events" to if not (UI elements enabled) then set (UI elements enabled) to true (*
Active le GUI scripting
• Enable GUI scripting *)
my nettoie()
my controleVersion()
set nomDuDocActif to my getFrontDoc()
if nomDuDocActif = "" then return
my prepareMessages()
try
set txtDatas to the clipboard as Unicode text
on error (*
The clipboard was empty *)
return
end try
set my listeLignes to every paragraph of txtDatas
set srcNbRows to count of my listeLignes
if txtDatas contains tab then (*
several columns *)
error "Can't treat several columns" number 8001
else (*
single column *)
tell application theApp
set choix to choose from list {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"} with prompt msg90 default items {"2"} OK button name msg91 cancel button name msg92
end tell
if choix is false then error -128
set theDelim to item 1 of choix
repeat with i from 1 to srcNbRows
if item i of my listeLignes is not "" then set item i of my listeLignes to my decipher(item i of my listeLignes)
end repeat
end if
set the clipboard to my recolle(listeLignes, return)
my pasteIt()
my nettoie()
end run
--=============
on pasteIt()
tell application theApp to activate
tell application "System Events" to tell (first process whose title is theApp)
click menu item nomDuDocActif of menu 1 of menu bar item menuFenetre of menu bar 1
keystroke "v" using {command down}
end tell
end pasteIt
--=============
on decoupeur(n)
local d, ms, m
set d to n div 1
set ms to (n - d) * 60
set m to round (ms)
return (d as text) & "°" & m & "’" & (round ((ms - m) * 60)) & "”"
end decoupeur
--=============
on decipher(source)
local i, itm, shortimem, j
set my listeTemp to my decoupe(source, theDelim)
set my listeTemp to items 2 thru -1 of my listeTemp
repeat with i from 1 to count of my listeTemp
set itm to item i of my listeTemp
set shortItem to ""
repeat with j from 1 to length of itm
if character j of itm is not in "1234567890" then
set shortItem to shortItem & character j of itm
else
exit repeat
end if
end repeat
set item i of my listeTemp to shortItem
end repeat
return my recolle(my listeTemp, tab)
end decipher
--=============
on getMinutesSeconds(t, d)
local ll
set ll to my decoupe(t, d)
return {(item 1 of ll) as integer, (item 2 of ll) as text}
end getMinutesSeconds
--=============
on decoupe(t, d)
local l
set AppleScript's text item delimiters to d
set l to text items of t
set AppleScript's text item delimiters to ""
return l
end decoupe
--=============
on recolle(l, d)
local t
set AppleScript's text item delimiters to d
set t to l as text
set AppleScript's text item delimiters to ""
return t
end recolle
--=============
on nettoie()
set AppleScript's text item delimiters to ""
set my listeLignes to {}
set my listeTemp to {}
set nomDuDocActif to ""
end nettoie
--=============
Get the name of the active document
on getFrontDoc()
local nw, mm
tell application theApp to activate
tell application "System Events" to tell (first process whose title is theApp)
set nw to name of every menu item of menu 1 of menu bar item menuFenetre of menu bar 1
if (count of nw) < premierNom then
set mm to ""
else
repeat with i from premierNom to count of nw
set mm to item i of nw
if (value of attribute "AXMenuItemMarkChar" of menu item mm of menu 1 of menu bar item menuFenetre of menu bar 1) is not in {"", "•"} then exit repeat
end repeat
end if -- (count of nw)…
end tell
return mm
end getFrontDoc
--=============
on controleVersion()
local v
try
set v to version of application theApp
set menuFenetre to 10 (* index of the Windows menu *)
set premierNom to 6 (* index of the first docName in the list of menu names
The list contains one more item than the displayed menu *)
on error (*
• We are here if Numbers ignores the instruction get version *)
tell application "System Events" to set v to get version of (get (application file of (get first process whose title is theApp)))
if v starts with "1" then
set menuFenetre to 10
set premierNom to 6
else (* ready for a Numbers v2 ignoring AppleScript *)
set menuFenetre to 10
set premierNom to 6
end if
end try
end controleVersion
--=============
on parleAnglais()
local z
try
tell application theApp to set z to localized string "Cancel"
on error
set z to "Cancel"
end try
return (z = "Cancel")
end parleAnglais
--=============
on prepareMessages()
if my parleAnglais() is false then
set msg90 to "Choisir le séparateur"
set msg91 to " OK "
set msg92 to "Annuler"
else
set msg90 to "Choose a separator"
set msg91 to " OK "
set msg92 to "Cancel"
end if
end prepareMessages
--=============
--[/SCRIPT]
Yvan KOENIG (from FRANCE lundi 30 juin 2008 11:16:52)

Similar Messages

  • Read Text file and count occurences of certain string

    Hello,
    I have a text file with lines of data in it. I would like to read this text file and count how many lines match a certain string of text. 
    For example my text file has this data in it.
    dog,blue,big
    dog,red,small
    dog,blue,big
    cat,blue,big
    If the certain string of text is "dog,blue,big" then the count would return "2".
    Thanks for your help

    Hello,
    Thank you for your post.
    I am afraid that the issue is out of support range of VS General Question forum which mainly discusses the usage issue of Visual Studio IDE such as
    WPF & SL designer, Visual Studio Guidance Automation Toolkit, Developer Documentation and Help System
    and Visual Studio Editor.
    I am moving your question to the moderator forum ("Where is the forum for..?"). The owner of the forum will direct you to a right forum.
    In addition, if you are working with Windows Forms app. please consult on Windows Forms Forum:http://social.msdn.microsoft.com/Forums/windows/en-US/home?category=windowsforms
    If you are working with WPF app, please consult on WPF forum:
    http://social.msdn.microsoft.com/Forums/vstudio/en-US/home?forum=wpf
    If you are working with ASP.NET Web Application, I suggest that you can consult your issue on ASP.NET forum:
    http://forums.asp.net/
     for better solution and support.
    Visual Studio Language Forums:
    http://social.msdn.microsoft.com/Forums/vstudio/en-US/home?category=vslanguages
    Best regards,
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • How to count a occurence of a string in file

    import java.util.*;
    import java.io.*;
    class Count
    public static void main(String args[ ] )throws Exception
         FileReader fr=new FileReader("d:\\compfetch\\clean\\first.txt");
         BufferedReader br=new BufferedReader(fr);
         StringBuffer sb=new StringBuffer();
         while((s=br.readLine())!=null)
              sb.append(s);
         s=sb.toString();
    Vector v= new Vector();
         v.addElement("job");
         v.addElement("jobs");
         v.addElement("career");
         v.addElement("careers");
         v.addElement("vacancy");
         v.addElement("vacancies");
         v.addElement("opportunity");
         v.addElement("openings");
         v.addElement("posting");
         v.addElement("postings");
         v.addElement("opportunities");
         v.addElement("placement");
         v.addElement("placements");
         v.addElement("job");
         v.addElement("job");
         Enumeration vEnum=v.elements();
         while(vEnum.hasMoreElements())
              System.out.println(vEnum.nextElement());
    I need to count the occurence of each string given in the vector from the text file.I have the file and the vector.How do i compare the vector and textfile ,so that i can count the occurence of eachString in the vector with the text file.The text file may contain any of the words given in the vector.If found ,a count shld be made for each string .
    regards,
    koel

    Try this code:
    import java.util.*;
    import java.io.*;
    class Count
    public static void main(String args[ ] )throws Exception
         FileReader     fr = new FileReader("c.c");
         BufferedReader br = new BufferedReader(fr);
         StringBuffer   sb = new StringBuffer();
         String         s;
         while((s=br.readLine())!=null)
              sb.append(s);
         s=sb.toString();
         Vector v= new Vector();
         v.addElement("job");
         v.addElement("jobs");
         v.addElement("career");
         v.addElement("careers");
         v.addElement("vacancy");
         v.addElement("vacancies");
         v.addElement("opportunity");
         v.addElement("openings");
         v.addElement("posting");
         v.addElement("postings");
         v.addElement("opportunities");
         v.addElement("placement");
         v.addElement("placements");
         Enumeration vEnum=v.elements();
         while(vEnum.hasMoreElements())
              String l = (String)vEnum.nextElement();
              int    a = 0;
              int    p = s.indexOf(l,a);
              int    c = 0;
              while (p != -1)
                   c = c + 1;
                   a = a + l.length() + p;
                   p = s.indexOf(l,a);
              System.out.println(l+"  "+c);
    }

  • How to find the number of occurence of a string

    String str="The AR tech seeks experienced candidates in java,jsp. The candidates should have atleast 1 year of experience in the specified skills.";
    here i need to find the number of occurence of the string "experience".
    how to find it out?

    String str="The AR tech seeks experienced candidates in java,jsp. The candidates should have atleast 1 year of experience in the specified skills.";
    String findStr = "experience";
    int count = 0;
    int index = 0;
    while(index != -1) {
    index = str.indexOf(findStr, (count == 0 ? 0 : index + findStr.length()));
    if(index != -1) {
    count++;

  • Counting occurence in image

    I don't know nothing about NI image DAQ, I'm new to this, I'm a Labwindows/CVI programmer and recently a client asked me if its possible to count cells occurences in an image. Before investing money in such system (seems to be very expensive) I would like to know if NI VISION functions are powerfull enough to count occurences of a human cell in an image ?
    Thank you,

    The short answer to your question is yes and there are similar examples on the IMAQ Vision demonstration CD. I would suggest you try and organize a demo from your local NI office.
    Application Note 107 gives a good tutorial on this topic and you can get access to it at the following link:
    http://zone.ni.com/devzone/conceptd.nsf/webmain/1D977AE5ED42CB0C86256869007215CC?opendocument&node=DZ52495_US
    As far as support for LabWindows/CVI is concerned, you may see a lot more "traffic" regarding LabVIEW on Developer Zone, but rest assured the capability of the CVI version of IMAQ Vision is virtually identical and there should be enough help either direct from NI or through Developer Zone to help with your application.
    With regards to questions about cost, t
    he cost of the application will have to be considered versus the benefits of introducing an autonomous inspection system. Your customer may find that the increases in throughput i.e. number of samples/images per hour that can be inspected or the reliability of the results produced (most people will strive towards a 100% inspection imaging application) will offset the initial development costs. This is particularly true if your customer is currently manually inspecting the samples (for example under a microscope).
    Jeremy

  • Splitting a concatenated string to multiple cells in a row in BIP Reports

    Hello Experts,
    Let me how to split a concatenated string into multiple cells in BIP reports rtf.
    Ex:
    string: acg;ghdf;tesrlkjj;hvfffda
    has to placed in multiple cells like
    string1: acg
    string2: ghdf
    string3: tesrlkjj
    string4: hvfffda
    Appreciate your quick reply.
    Please drop in the pseudo code.
    Thanks & Regards
    Syed

    The report is based on a standard sql query such as
    select item1, item2, item3, item4, item5, item6, item7
    from mytable
    order by item1Wanted to put that in as I am not using an interactive report.
    Thanks
    Wally

  • Details: Numbers not translating an Excel document with column headings where the text is rotated counter clockwise 90 degrees with-in the cell.  Can you tell me how I can rotate the contents with-in a cell?

    Details: Numbers not translating an Excel document with column headings where the text is rotated counter clockwise 90 degrees with-in the cell.  Can you tell me how I can rotate the contents with-in a cell?

    Numbers does not have rotated text within cells.  You can place a text box over the cell that has rotated text but you cannot rotate text within a cell.

  • How to find MATCH count for #  in a String

    Hi all,
    How to find MATCH count for #  in a String.
    Ex:  6170#0400-0002-00#API3PT#AL#AUST#DEVE#KG#100.00#100.00#100.00#0.00##10.20
    Regards,
    Balavardhan.K

    >
    balavardhan k wrote:
    > I have used below syntax to find count but it is not returning the value and SY-SUBRC  = 4.
    >
    >
    > Data : l_text type string.
    >
    > l_text = '6170#0400-0002-00#API3PT#AL#AUST#DEVE#KG#100.00#100.00#100.00#0.00##10.20'.
    >
    >
    > FIND ALL OCCURRENCES OF '#' IN L_TEXT MATCH COUNT mcnt .
    Then it's not a # but possible a horizontal tab-sign.
    Do a find on cl_abap_char_utilities=>horizontal_tab instead.
    Edited by: Maen Anachronos on Nov 23, 2010 2:48 PM

  • Counting occurences

    Hello Experts,
    I have the following query related to counting occurences of a particular characteristic related to the Calendar month
    1) When I choose the option "Average of all values" within exception aggregation for the calculated keyfigure that I am using for the count, it counts all the values including duplicates .i.e. if the charcteristic has repeated occurences for a given month, then it is counted distinct occurence. However, in this case it is not showing me "0" for no occurence but just displaying a blank
    2) But when I choose the option "Counting all values" within exception aggregation for the calculated keyfigure that I am using for the count, it does provides me "0" for no occurences but it counts the repeated value as single occurence
    How can I get around this? I mean to get repeated values to be counted as separate occurences and also being able to show "0" for no occurence.
    Any help will be appreciated
    Thanks,
    Rishi

    Hi ,
    Please use exception aggregation as you already did  with count all values.
    But you need to select a specific reference chars to select the unique count.Plant or the Month can be a option.
    In BI7.0 U have concept of nested aggregation:
    Create a CKF1 with reference to one Char. and craete another CKF2 using the earlier CKF1 and put again a reference on some other char.
    that will solve the problem.
    Please take care of the selection of Char while doing reference char.

  • String Count Occurence

    i just want to count the number of occurence of character in string..
    so i did this.. dont know whats wrong.. so someone help me
    mport java.util.*;
    public class CountChar {
    public static void main(String[] args ) {
    String input = args[0];
    LinkedHashMap<Character, Integer> lhm = new LinkedHashMap<Character, Integer>();
    for (int i =0; i<input.length(); i++) {
    char currentChar = input.charAt(i);
    if(lhm.containsKey(currentChar)) {
    lhm.put(currentChar, lhm.get(currentChar) + 1);
    } else {
    lhm.put(currentChar, 1);
    System.out.println(lhm.toString());
    }

    raji10 wrote:
    yes i did itWell, as I wrote already: it works fine for me, there must be something else you're doing wrong. What exactly doesn't work?
    kind regards,
    Jos

  • How to count occurences of a certain string in incoming real-time data? Also displaying RTC data. Current VI included

    I use LabView student Express 7 on a Windows XP system.
    Time-frame: we are doing final integrations for our balloon experiment today. We just got told that the press wants to view real-time data, which we haven't programmed for. I need help to get a working VI at the latest by 25.02.2004 before 0800(morning) (GMT+1).
    Note on license
    It is a student balloon flight, and the data will not be used in scientific work, so the I am not breaking any license agreements (I hope).
    Problem synopsis:
    The balloon continually transmits data at 9600baud. The data is a semi-repeating header followed by a constant lenght data-package arranged like this:
    BEXUS[h][m][s]BEXUS[h][m][s]
    [Raw binary data, 7channels*8sub-channels*8bits]
    What the groundstation is doing right now:
    Take all incomming data and save (append) the data to a file without any data-handling. (We figured we would go post-processing).
    What I need to change in less than 24 hours:
    - Add a "package" counter
    - Add a display of the clock data (RTC)
    How I planned to implement the changes:
    -RTC display:
    The RTC data is in BCD format, since that means that if you look at the data as hex numbers, you get the hours and minutes and seconds out in "clear text". That is 12 hours is 0x12hex. I figured that I can do a match pattern BEXUS and pass the "after substring" to another match pattern BEXUS from which I feed the "before substring" to a type-cast VI (casting string to u8) and displaying that, which should give me a display of "123000" for the time 12:30:00... I couldn't get it to work at all when I tried out the supplied "beta" vi.
    - Package counter:
    Counting how many BEXUS that gets detected and dividing by 2. I don't know how to do this. I've looked on the forum (a good thread on the problem: "how do I count the number of *'s in a string") but these use either loops or arrays... and I'm not sure how this works when I'm getting the data in at realtime. I cant make an array and then count it, since then the array would grow fast and possibly interfere with saving of the data??? Saving the data is critical.. without that file we cant do post-processing.
    Since my time is so limited (I'm not even supposed to do the groundstation software but they called on me in the last minute because no-one else had time/wanted too/could do it) I hope that you could make an exception and provide me with working VI's (based on the one I have attached) so that I can show something to the press! (Free comercial for NI!! Since the student version shows the National Instruments water-mark on all VI's!!! Possible TV time!!)
    Thanks!
    PS: even if you are to late (after 25) post anyway!
    Why:
    -I can learn from it
    -the launch might be delayed due to weather conditions
    -others might find it amusing!
    Thanks again!
    Attachments:
    BexusII_groundstation.vi ‏46 KB

    I have a valid example data file attached to this thread.
    If you open BEXTEST.bin in a hex-editor of your choice, you'll see the BEXUS as 42 45 58 55 53 and then the time as 00 28 09 etc.
    I couldn't get Joe Guo's VI to work. It doesn't count packages correctly, and the time is not displayed correctly either.
    The file was saved using a straight save to file VI.
    The data is from actual launching area tests performed a few mintues ago. The time displayed is "On time" e.g. how long the gondola has been powered up.
    I have a spare T-junction, so I can hook into the balloon real-time data as we fly, in case anyone care to see if they can figure out why the latest version of Joe Guo's program is not displaying correctly.
    I will monitor this
    thread during and after flight to see if anyone can make it in time!
    Thanks for the great effort!!
    Attachments:
    bextest.bin ‏53 KB

  • Count of occurences of a string senetence in 9i?

    Hi All,
    Is there an easy way using SQL to count the number of occrences of a string in a sentence? Dont want to use pl/sql if i can help it, maybe im missing an easy function?. Im using 9i rel2.
    eg find the count of ':' in the below string
    a:b:c:d: should return 4. (the separtor being : included on the end)
    a:b: should return 2
    and so on?
    Kind Regards
    Satnam

    SQL> SELECT a-LENGTH(REPLACE(SUBSTR(p,1,a),':',''))
      2    FROM
      3  (SELECT INSTR('a:b:c:d:e:',':',-1,1) a
      4         ,'a:b:c:d:e:' p
      5    FROM dual);
    A-LENGTH(REPLACE(SUBSTR(P,1,A),':',''))
                                          5Khurram

  • Count occurences of subsring in string

    I am using cfhttp to return an hmtl table. I would like to
    "count' the number of "<tr>" tags in the cfhttp.filecontent
    variable I do not nessarily want to loop over it... is there a way
    to do this?

    If your <tr> has white space on each side, you could
    use the ListValueCountNoCase( ) function (
    http://livedocs.macromedia.com/coldfusion/5.0/CFML_Reference/Functions155.htm#1108281)
    Use a space as the list delimiter.

  • Count occurence of words in string

    hi guys. i need some help.
    my problem is. i have a string, and want to know how many times each word appears in it, and print out only the word that appear more than 2 times.
    has any one an idea of how this is possible?

    There are many solutions, but here is the outline of one possible method.
    1) Split your string in words with the StringTokenizer class
    2) Create a HashMap
    3) look up your word in the hash map
    4a) If the word is not in the hashmap, create a new entry in the HashMap, where the key is your word from the original string, and the Value is (new Integer(1))
    4b) if the word is already in the hashmap, get the value from the hashmap, add one to it, then put the new Integer value in the hashmap
    5) for each value in the hashmap, print out the key , if the value is an Integer > 1
    With any luck, that will help you

  • How can i get a query to count a number of strings?

    I want the query to count for me how many holidays there are to the USA in my table. But im not sure how to get it to retreive the result of a string or varchar2 datatype. This is what i have tried so far.
    select count(COUNTRYVIS) <<this column contains all the countries visited
    from "IT220_HOLIDAYDETAILS" <<this is the table where the column is
    where COUNTRYVIS = "USA" << this is the result i want it to count
    ORA-00904: "USA": invalid identifier <<this is the error message im getting, is there a way to count strings?
    Thanks in advance!

    This has nothing to do with APEX. Please post basic SQL questions on the +{forum:id=75}+ forum.
    In any OTN forum, alll code should be posted wrapped in <tt>\...\</tt> tags as described in the FAQ:
    select count(COUNTRYVIS) -- this column contains all the countries visited
    from "IT220_HOLIDAYDETAILS" -- this is the table where the column is
    where COUNTRYVIS = "USA" -- this is the result i want it to countYou appear to be struggling with the distinction between identifiers and text literals. Hint: One uses double quotes, the other single quotes.
    Note that quoted identifiers are generally not a good idea.

Maybe you are looking for

  • How do you authorise old accounts that have been modified

    I updated my store account email address a couple of months ago. Since then I have changed my computer and some of the tracks that I purchased before the email address change cannot be accessed as they haven't been authorised on my new computer. How

  • Question regarding Repeating Frames...

    Hi I've been using Oracle Reports for a short time. I am trying to accomplish something within a repeating frame but can't seem to get it to work. The results I receive from my SQL query are in the form of a month associated with a numeric value. The

  • Peak file location in CS5 PP

    Where are the Peak files saved in CS5 Premiere Pro? Running on a PC in Win 7 64 bit.  I am presently using wherever the default file locations are.

  • Renaming the Source Directory

    What negative effects will renaming the source directory have on my help file topics, graphics etc.  For example, the current directory is c:\PRD and I need to rename it to c:\PRD2.

  • Does any one have problems with verizon email ?  Mainly with email folders .

    I have an ipad2 and can not get any folder besides inbox and trash on my ipad .. It seems to be because I have to use yahoo.verizon server.. I have tried to sync the ipad several times but do not get folders that are on my Dell desktop running Window