Count the items in a column with multiple values?

Hi all
Is there a way to count the items in a column that allows multiple values?
Example list:
Course title:                        Participants:
Visual Basic Introduction     John Smith; Lois Lane; Clark Kent
Visual Basic Advanced         John Smith; Lex Luthor
The result should be "3" and "2" (number of participants), which should be displayed in the list or on the page.
Is this possible?
( I am using Sharepoint 2007 and have access to Sharepoint designer.)
Thanks!

Hi dee,
We can use XSLT to do this in Data View Web Part.
First, display your list in data view web part.
Insert a new column in the data view, used to display the count.
Switch to code mode, add following code within the <td></td>.
<td>
<xsl:choose>
<xsl:when test="@Title!=''">
<xsl:variable name="count">
<xsl:call-template name="countChar">
<xsl:with-param name="str" select="@Title" />
<xsl:with-param name="count" select="1" />
</xsl:call-template>
</xsl:variable>
count is <xsl:value-of select="$count" />
</xsl:when>
<xsl:otherwise>
count is <xsl:value-of select="0" />
</xsl:otherwise>
</xsl:choose>
</td>
And put the following template definition outside all the other templates.
<xsl:template name="countChar">
<xsl:param name="str" />
<xsl:param name="count" />
<xsl:choose>
<xsl:when test="contains($str, ';')">
<xsl:call-template name="countChar">
<xsl:with-param name="str" select="substring-after($str, ';')" />
<xsl:with-param name="count" select="number($count) + 1" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$count" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Done and then you will see the count in the td cell.
I test with Title column and cut off string with ";" character.
Thanks & Regards,
Emir Liu
TechNet Subscriber Support in forum
If you have any feedback on our support, please contact [email protected] 
Emir Liu
TechNet Community Support

Similar Messages

  • Document library view: Group by a column with multiple values

    I have a document library which has a managed metadata column.
    I would like to create a view which groups the documents by this managed metadata column.
    The managed metadata column can have multiple values.
    I know that this is not possible with SharePoint's group by, since it only accepts those columns which can have only one single value.
    But is this possible to accomplish by some other means, e.g. Content query web part? Or is there perhaps a 3rd party solution to this?
    Is it possible to change the group by settings somehow to allow Group by to function with columns with multiple values? <- this may be far fetched...

    Hi Pekch,
    I'm assuming you have VS2010 to build the custom web part. From there you will need to figure out the following:
    Get a SPList object for the Document Library (See below for code example)
    Loop through all the documents in the SPList object 
    If you have audience targetting enabled, then you'll need to determine if the user has access to the document by checking the "Target_x0020_Audiences" column)
    As you also want to group by metadata, you'll need to populate 2 datatables (one table with a column containing unique metadata values and another table with a metadata column and other document related columns).  Link these two tables via a dataset
    relation.
    Set the dataset as the datasource for a repeater, add in some css and javascript for the group expand/collaspe and it should be close to what you need.
    This will be a time consuming task if you don't know where to start or have problems figuring out how to perform a certain operation.  So you may want to determine if the functionality you want is required or just a "nice to have".  Good
    luck and if I have some spare time, I'll create a blog post outlining how to do all the above.
    I got the below code from a sharepoint blog sometime in the past and you can use it to retrieve a list.
    You can use it like this: GetListByUrl(http://servername/Shared%20Documents/Forms/AllItems.aspx)
    using    Microsoft.SharePoint;
    public SPList GetListByUrl(string listURL)
    SPList list = null;
    try
    using (SPSite site = new SPSite(listURL))
    if (site != null)
    // Strip off the site url, leaving the rest
    // We'll use this to open the web
    string webUrl = listURL.Substring(site.Url.Length);
    // Strip off anything after /forms/
    int formsPos = webUrl.IndexOf("/forms/", 0, StringComparison.InvariantCultureIgnoreCase);
    if (formsPos >= 0)
    webUrl = webUrl.Substring(0, webUrl.LastIndexOf('/', formsPos));
    // Strip off anything after /lists/
    int listPos = webUrl.IndexOf("/lists/", 0, StringComparison.InvariantCultureIgnoreCase);
    if (listPos >= 0)
    // Must be a custom list
    // Strip off anything after /lists/
    webUrl = webUrl.Substring(0, webUrl.LastIndexOf('/', listPos));
    else
    // No lists, must be a document library.
    // Strip off the document library name
    webUrl = webUrl.Substring(0, webUrl.LastIndexOf('/'));
    // Get the web site
    using (SPWeb web = site.OpenWeb(webUrl))
    if (web != null)
    // Initialize the web (avoids COM exceptions)
    string title = web.Title;
    // Strip off the relative list Url
    // Form the full path to the list
    //string relativelistURL = listURL.Substring(web.Url.Length);
    //string url = SPUrlUtility.CombineUrl(web.Url, relativelistURL);
    // Get the list
    list = web.GetList(listURL);
    catch { }
    return list;

  • SPGridView with filtering on Taxonomy Field Multivalue column( column with multiple values in single row)

    Hi
    I have SPGridView  control (fetching value from DB) with a column which is having multiple values
    in single row seperated by ";", whenever filter applied it show these values in single row but i want
    to dispaly these values separately in diff. rows when column filter is applied.
    I have exactly same req. as mentioned in http://sadomovalex.blogspot.in/2011/03/spgridview-with-filtering-by-multiple.html
    but this solution didn't work for me.
    Please help/suggest.

    Hi Erland,
    Thank you very much for the answer. Sorry I had to be more accurate on my XML : This XML is in a SQL Server Table column. This table also has an id column. It will be great if you can answer specifically to this.
    <RootNode>
    <Node1>
    <Line_id_Node>1 </Line_id_Node>
    <A>
    <B>
    <D>Val1 </D>
    </B>
    <B>
    <D>Val2 </D>
    </B>
    <B>
    <D>Val3 </D>
    </B>
    </A>
    </Node1>
    <Node1>
    <Line_id_Node> 2 </Line_id_Node>
    <A>
    <B>
    <D>Val4 </D>
    </B>
    <B>
    <D>Val2 </D>
    </B>
    </A>
    </Node1>
    <Node1>
    <Line_id_Node> 3 </Line_id_Node>
    <A>
    <B>
    <D>Val5 </D>
    </B>
    </A>
    </Node1>
    </RootNode>
    Expected O/P:
    Line_id_Node                Column_D
    1                                                                    1                                           
    val1, val2, val3
    2                                                                    2                                               
    val4, val2
    3                                                                    3                                                  
    val5
    Nichesl

  • Can you add People Picker with multiple values to Word Document using Quick Parts?

    Hi all, I've been trying to develop a form in Word that takes a bunch of metadata from the SharePoint library. Most of it works okay, but when I try to add any fields that have been set up to take multiple entries in a people picker, they don't show up
    in the add quick parts list. Any ideas, or is this a limitation?

    Hi NREL,
    According to your description, my understanding is that the people picker column with multiple values was missing in Word Quick Parts.
    This is by design that we are unable to use the fields which is allowed multiple selections.
    As a workaround, you can use a text field(Single line of text) to store the multiple values of the people column. When you create a document, start a workflow to update the text field using the values of the people column, then use the
     text field in Word Quick Parts.
    You can do as the followings:
    Open your library, and create a new column using Single line of text.
    Open your site with SharePoint 2010 Designer, create a workflow based on your library.
    Add the action “Set Field in CurrenItem”, and set it like the screenshot.
    Set the Start Options is “Start workflow automatically when an item is created”.
    Best Regards,
    Wendy
    Forum Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected]
    Wendy Li
    TechNet Community Support

  • Copying the item text in case of multiple line items

    Hi All,
                    I have a scenario where the sales order gets created in our SAP through a 850 idoc. The incoming idoc has only one item segment which carries the total order quantity ( for example say 1000). Since my company has contractual agreements with the end customer for doing multiple shipments , our sales department splits the total quantity into multiple line items in the sales order. Say splitting the 1000 quantities into 5 line items of 200 each.
    The problem here is that when the sales order got created , all  the related item text were copied only to the first line item ( of 1000 qty) and which is standard SAP. Since the order quantity was manually split, the related item text are not carried to the subsequent line items. The issue comes when an outbound (810) idoc is sent to customer . As I told earlier since only the first line item has the item text , the 810 idoc which was created for  the first line item only has the item text . The rest of the 810 which were subsequently created for multiple shipments/invoices on different dates didn't have the item text in the 810's. This is becoming a major problem as the 810 files are failing at our trading partners end because of missing text.
    Now my question is, Is there a way that I can make the item text copy automatically when multiple line items are created manually by business. Like is there a way where I can modify MV45AFZZ  to copy the item text in their respective segemnts ( z003,z004 etc) to "N" number of line items.
    Also please suggest if there is a better way of doing it. Suggstions are most welcome !!!.
    Regards
    Amrith

    Hi,
    First of all try to avoid doing select into corresponding fields. THis would improve the performance of the program.
    Try to do a single fetch from the BSIS table . fetch the hkont, belnr, dmbtr fields in to a master internal table. Manipulate and play with the data as required.  Don't hit the data base table more than once (unless it is required) . This would improve the performance of your code.
    Try to code this way.
    types: begin of ty_bsis,
                 hkont type hkont,
                 belnr type  belnr_d,
                 dmbtr type dmbtr,
              end of ty_bsis.
    data: it_bsis type standard table of ty_bsis,
             wa_bsis type ty_bsis,
    select hkont belnr dmbtr
              from bsis
              into table it_bsis
              WHERE HKONT IN S_RACCT
            AND PRCTR IN P_PRCTR
              AND MONAT IN S_POPER
             AND BUKRS EQ P_BUKRS
             AND GJAHR EQ P_GJAHR
              AND PRCTR IN S_PRCTR.
    Using the data availabe in the it_bsis, you can manipulate as required.
    Hope this would be helpful
    Regards
    Ramesh Sundaram

  • How can I create a hashmap() with multiple values for the same key?

    I am trying to write an application that will us something like a Map() with multiple values but some have the same key. Is this possible?

    i had the same question. just create a List, add all the values u want to it, and then put the List into the map like u would a normal single value. e.g.
    List list = new ArrayList();
    list.add(value1);
    list.add(value2);
    map.put(key, list);
    i bet u r doing the same course as i am =)

  • Sql query slowness due to rank and columns with null values:

        
    Sql query slowness due to rank and columns with null values:
    I have the following table in database with around 10 millions records:
    Declaration:
    create table PropertyOwners (
    [Key] int not null primary key,
    PropertyKey int not null,    
    BoughtDate DateTime,    
    OwnerKey int null,    
    GroupKey int null   
    go
    [Key] is primary key and combination of PropertyKey, BoughtDate, OwnerKey and GroupKey is unique.
    With the following index:
    CREATE NONCLUSTERED INDEX [IX_PropertyOwners] ON [dbo].[PropertyOwners]    
    [PropertyKey] ASC,   
    [BoughtDate] DESC,   
    [OwnerKey] DESC,   
    [GroupKey] DESC   
    go
    Description of the case:
    For single BoughtDate one property can belong to multiple owners or single group, for single record there can either be OwnerKey or GroupKey but not both so one of them will be null for each record. I am trying to retrieve the data from the table using
    following query for the OwnerKey. If there are same property rows for owners and group at the same time than the rows having OwnerKey with be preferred, that is why I am using "OwnerKey desc" in Rank function.
    declare @ownerKey int = 40000   
    select PropertyKey, BoughtDate, OwnerKey, GroupKey   
    from (    
    select PropertyKey, BoughtDate, OwnerKey, GroupKey,       
    RANK() over (partition by PropertyKey order by BoughtDate desc, OwnerKey desc, GroupKey desc) as [Rank]   
    from PropertyOwners   
    ) as result   
    where result.[Rank]=1 and result.[OwnerKey]=@ownerKey
    It is taking 2-3 seconds to get the records which is too slow, similar time it is taking as I try to get the records using the GroupKey. But when I tried to get the records for the PropertyKey with the same query, it is executing in 10 milliseconds.
    May be the slowness is due to as OwnerKey/GroupKey in the table  can be null and sql server in unable to index it. I have also tried to use the Indexed view to pre ranked them but I can't use it in my query as Rank function is not supported in indexed
    view.
    Please note this table is updated once a day and using Sql Server 2008 R2. Any help will be greatly appreciated.

    create table #result (PropertyKey int not null, BoughtDate datetime, OwnerKey int null, GroupKey int null, [Rank] int not null)Create index idx ON #result(OwnerKey ,rnk)
    insert into #result(PropertyKey, BoughtDate, OwnerKey, GroupKey, [Rank])
    select PropertyKey, BoughtDate, OwnerKey, GroupKey,
    RANK() over (partition by PropertyKey order by BoughtDate desc, OwnerKey desc, GroupKey desc) as [Rank]
    from PropertyOwners
    go
    declare @ownerKey int = 1
    select PropertyKey, BoughtDate, OwnerKey, GroupKey
    from #result as result
    where result.[Rank]=1
    and result.[OwnerKey]=@ownerKey
    go
    Best Regards,Uri Dimant SQL Server MVP,
    http://sqlblog.com/blogs/uri_dimant/
    MS SQL optimization: MS SQL Development and Optimization
    MS SQL Consulting:
    Large scale of database and data cleansing
    Remote DBA Services:
    Improves MS SQL Database Performance
    SQL Server Integration Services:
    Business Intelligence

  • How to compare single value with multiple values

    In my query I have something like this:
    A.SOR_CD=B.SOR_CODE where A and B are 2 different tables. This condition is in the where clause. The column in table A has single values but some values in table B have multiple comma separated values (822, 869, 811, ..).  I want to match this single
    value on the left side with each of the comma separated values. Please let me know how will I be able to do it. The number of comma separated values on the right side may vary.

    Hi MadRad123,
    According to your description, you want to compare single value with multiple values in your query. Right?
    In this scenario, the table B has comma separated values, however those comma separated values are concatenated into a string. So we can use charindex() function to return the index of the table A value. And use this index as condition in
    your where clause. See the sample below:
    CREATE TABLE #temp1(
    ID nvarchar(50),
    Name nvarchar(50))
    INSERT INTO #temp1 VALUES
    ('1','A'),
    ('2','A'),
    ('3','A'),
    ('4','A'),
    ('5','A')
    CREATE TABLE #temp2(
    ID nvarchar(50),
    Name nvarchar(50))
    INSERT INTO #temp2 VALUES
    ('1','a,A'),
    ('2','A,B'),
    ('3','c'),
    ('4','A,C'),
    ('5','d')
    select * from #temp1 a inner join #temp2 b on a.ID=b.ID
    where CHARINDEX(a.Name,b.Name)>0
    The result looks like below:
    Reference:
    CHARINDEX (Transact-SQL)
    If you have any question, please feel free to ask.
    Best Regards,
    Simon Hou

  • Report script - using substitution variable with multiple values

    Hi All,
    Substitution variable with multiple values is not working correctly with Report scripts. Can you please let me know what is the syntax to assign multiple values to a sub variable using maxl:
    alter database samp.samp set variable 'ExtractQuarter' 'Q1,Q2,Q3,Q4';
    alter database Samp.Samp set variable 'ExtractQuarter' 'Q1:Q4';
    I tried both of the above but they are errored out with the below error:
    Error: 1001005 - Unknown Member [Q1:Q4] in Report.
    my requirement is different for both Actual and forecast data extract so i would like to make use of this variable to extract whole year data for Forecast and current quarter data for Actual with out duplicating the report scripts for both processes.
    Thanks,
    PRaveen

    Hi,
    Please refer following thread,
    range of months in report script?
    Hope it helps.
    Regards

  • Variable with multiple values.

    Hi All,
    Can anyone help me  to create a  variable with multiple values like it should accept two Buisness Area AU10,PH10 in Query.As well as how to use this variable in fox using VARV, VARI,and VARC.
    Thanx&Rgds,
    Indu

    Hi,
      You can write an exit for variable to retrieve two values.
    Usage of this variable in FOX..
    TOTALCOUNT= VARC(variable).
    COUNT = 1.
    DO .
    IF COUNT < TOTALCOUNT.
    varval = VARI( variable, COUNT ).
    COUNT = COUNT + 1.
    ENDIF.
    Hope this helps.
    Regards,
    Bindu

  • Web Forms using substitution variables with multiple values

    Hi,
    I am trying to select a substitution variable in a webform (Hyperion Planning 11.1.1.3) with multiple values in EAS, but is not working does somebody knows if this an expected behaviour.
    I allready try ex.
    &Months = "Jan","Feb", "Mar"
    &Months = Jan, Feb, Mar
    &Months = Jan:Mar
    Please let me know something, since as far as I recall in previous versions of Hyperion Planning this was possible.
    Kind Regards

    We experienced the same issue, our requirement was that for the first half of the year the substitution variable was = Oct and for the second part of the year Jan:Dec. We were lucky that for the second scenario we had a Total Year member as well (that at the bottom level is Jan:Dec). So on web form we picked Level0 descendants of the substitution variable. That worked fine but not the range.

  • How can I compare single value with multiple value...

    Hello,
    I want to compare one value with multiple values, how can it possible ?
    Here in attachment I tried to design same logic but I got problem that when I entered value in y that is compared with only minimum value of x, I don't want that I want to compare y value with all the x value and then if y is less then x while loop should be stop.
    I want to do so because in my program some time I didn't get result what I want, for example x values is 4,5,6,7,8  and y value is  suppose 6 then while loop should be stop but here it consider only minimum number and its 4 here so while loop is not stop even y is less then 7 and 8. So I want to compare y value with all the entered values of x and if y is less then any of x values then while loop should be stop and led should be ON.
    Please guide me how can I do so.....
    Solved!
    Go to Solution.
    Attachments:
    COMPARISON.vi ‏8 KB

    AnkitRamani wrote:
    Thank you very mach for your help..
    may be i have solved this ....i have made one change in my vi that instead of min. i select max and max. value is compare with the value of y and then if y is less then the max. while loop will be stop other wise its run continuously.
    this is working fine...
    any ways thanks again for your help and time...
    I have to agree with Lewis - his way is more efficient.
    Bill
    (Mid-Level minion.)
    My support system ensures that I don't look totally incompetent.
    Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.

  • OLAP on 11g and Materialised Views with Multiple Value-Based Hierarchies

    Hello OLAPians
    I am trying to setup Orable BIEE to report on an OLAP cube with pre-aggregated data. As OBIEE is not able to hook into the OLAP directly i have to create an SQL cubeview.
    Currently i am on a 10g OLAP environment and am using the oracle sample SQL cubeview generator to create an SQLview of my cube.
    The cube itself has multiple dimensions and these dimensions have multiple VALUE-based (ragged) hierarchies and dimension members can be shared across hierarchies also.
    Initially i had a problem running the view generator plugin because there is a bug within it that does not finish if there are multiple value-based hierarchies present. I was able to get around this by manually editing the limitmap for the cubeview and manually creating the SQL view.
    The question that i want to ask is how robust is the 11g materialised views with multiple value-based hierarchies and the sharing of dimension members across different hierarchies?
    Has anyone successfully been able to create a cubeview and import it into OBIEE without the hassle of manually editing the limitmap?
    A problem arises with the value-based setup whereby if the client creates a newer depth in the ragged hierarchy, i need to manually create the limitmap and the cube-view over again, and then re-map the BI Administration mappings.

    The simple answer to your question,
    how robust is the 11g materialised views with multiple value-based hierarchies...?is that materialized views are not supported on top of value-based hierarchies in 11g. The reason is that it is not possible to write a reasonable SQL statement that aggregates a fact over a value-based hierarchy. Such a SQL statement is necessary if we want to create a rewritable MV on top of the cube.
    But I suspect this is not what you are really asking. If you are trying to set up OBIEE on top of the cube in 10g using the view generator, then you will probably want to use the "ET VIEWS" that are generated automatically in 11g. These are generated whether or not you enable materialized views on top of your cube. I am not aware of any issues with the generated value-based hierarchy view support in 11g. Members may be shared between value hierarchies and you will not need to generate or modify limit maps.

  • Snmp for oids with multiple values

    Hi,
    So if we have array of OIDs defined in the mib file (eg, 1.3.6.1.4.1.22.1.1, 1.3.6.1.4.1.22.1.2, 1.3.6.1.4.1.22.1.3 and so on each having different values). does anyone know how can we capture this using SNMP fetchlet?
    or
    do we need to specify each oid separately?
    Thanks

    Maybe I misunderstood lushhay here. I thought lushhay wanted to associate a key with multiple values. So one way is to have the value of the Hashtable key to be an ArrayList.
    Hashtable table = new HashTable();
    String key1 = "myKey";
    String key2 = "myKey2";
    Date value1 = (some date value);
    Date value2 = (another date value);
    Date value3 = (another date value);
    ArrayList valueList = new ArrayList();
    valueList.add(value1);
    valueList.add(value2);
    valueList.add(value3);
    table.put(key1,valueList);
    This would associate "myKey1" with 3 date values stored in an ArrayList.
    There is a downside to using the string concatenation method. You assume that the content of each values will never contain a delimiter. You also assume that the values are strings. But if the values are byte[], the string concatenation will not work. If the values are Dates, it can still work, but you would have to convert it from Date to String then concatenate, then get the String value through StringTokenizer and then convert back to Date.
    But anyways, if the values are Strings (and won't contain the delimiter character), then the concatenation method would suffice.

  • A variable with multiple values. Is it possible?

    Normally, when we need a variable with multiple values we just write them while creating the variable or, if they depend on some other variable selected by the user a variable of type exit is used.
    However, this time we would like my user to select <b>a few</b> variable values <b>at a time</b>, i.e years 2005,2006 and 2007. He can change his mind and then select 2007 and 2008. I don't want the user to be forced to select ONLY ONE value. They need to select several values at the same time.
    Ideally, I don't want to use a range with values from 2 variables to do that.
    Thanks,
    Alberto Sabate
    Message was edited by: Alberto Sabate

    Hello Alberto,
    When restricting variables to multiple values you need to use a range. The variable restriction in BPS supports two operators EQ - equals and BT - between.
    In your example below however you could use a user exit to support this. The years you have typed in below are sequential and therefore would fit into a range.
    Cheers,
    Scott

Maybe you are looking for

  • Ovi suite and nokia c5-03

    I have tried continually today to get my phone to be recognised by ovi suite. It see's the phone model when adding a new device, but when i click on the phone, it comes up with the phone is not in ovi suite mode???? What the heck, its the only mode a

  • WSDL generated from java class - how to include headers?

    I am using the servicegen ant task and generating a web service based on a java class. I would like to include a username and password in the soap header and read that info using a handler. I am able to get that working, but how do I get the auto-gen

  • Inventory Value other Than Functional Currency

    How can we keep Inventory Valuation in Non - Functional Currency ? Scenario Ledger Currency = KES, Majority of the business for the client is from Exports, as the procurement happens in USD the can we retain the cost of the product in USD ?

  • Adobe acrobat/flash player/reader-?they are problem

    Recently I received 2 birthday cards from 2 different web sites.In both cases,I was unable to open the pictures/words/songs on the cards.The web site names were on the page,but no pictures etc  would open.I also tried to open a 3rd card website mysel

  • Signature Pad

    I was assigned the task of testing a couple of signature pads Topaz siglite T-L460 with SUNRAY 270, Solaris 10 x86, SRSS 4.2 SRWC 2.3 in kiosk mode pointing to a windows 2003 terminal server. However, after installing the windows components 2.0 with