How to enable gender dependent salutation in phplist? - email

I would like to know who to enable/implement in phplist a sex-dependend salutation.
Eg. "Dear Mr. Michael Meyers" or "Dear Mrs. Eva Evangelista" depending on the "gender".
Did not find any possibility to do this.

Well, there's no such feature in PHPList per se.
But what you can do is add a new PHPList attribute called "salutation".
New subscribers will fill it up in the registration form.
For old subscribers, export the list to a spreadsheet, and add Mr. or Mrs. in each row*.
Finally, import the spreadsheet back to PHPList.
* An easier way to accomplish it is add a temporary column and write just 1 in it if the person is, for example, male.
Then in the real column do something like:
if(d2="1", "Mr.", "Mrs.")
Before you save it as CSV make sure to convert the real column from formulas into values, and delete the temporary column.

Related

Grouping By with missing data

Image of Data and desired result:
I'm trying to aggregate volunteer hours from a Google spreadsheet a non-profit I volunteer for. We collect volunteer e-mail information and the time that each volunteer has contributed. Each volunteer only puts in their e-mail the first time. I've found examples online on how to send e-mails, but I'm having trouble aggregating the data. I think the trouble might be that not every row has an e-mail address associated with it.
I've been able to get the sum of hours worked by volunteer using QUERY(data, "select A, sum(C) Group By A", ) but can't figure out how to get the e-mail associated with each individual.
Thanks for the advice! The VLOOKUP and ArrayFormula functions were new to me. Here's how I solved it:
QUERY(data, "select A, B where B <>'' ", -1)
This allowed me to get the Key-Value pair (Name, Email) for each volunteer (solving the problem of people who volunteered multiple times, but only left their e-mail once). From there, I was able to generate the 'Name:Hours Worked' table off to the right with:
QUERY(data, "select A, sum(C) Group By A", ).
Then, I used VLOOKUP to query my Name-Email table to get the desired result of:
Name-Email-aggregatedHours
Thanks!
You can't achieve this with query. But you could apply vlookup to sorted table:
=ArrayFormula(VLOOKUP(UNIQUE(FILTER(A2:A,A2:A<>"")),SORT(A2:B,2,0),2,0))
and get email list for unique names.
First, clean up your data. You shoud be certain that at least one column has no typos an that this column appropiate identify which data corresponds to each volunteer. This is called key value. This also could be done by, but not limited to, filling up the missing values for each row. If this will be hard, then
Create a volunteer list without missing data.
Calculate the time contributed by each volunteer. If you was able to fill up the missing values, then you could use QUERY, I this case the QUERY formula should have to group by name and email, if not, then use SUMIF

Word Master-Detail Mail Merge

I searched a lot to find out how to do a "master-detail" style mail merge in word but i couldn't find an appropriate answer/tutorial.
my data look like this:
id name property
-----------------------------
1 John Doe employed
1 John Doe married
1 John Doe male
2 Don Joe employed
2 Don Joe single
2 Don Joe male
and the result should look like this:
with a page-break between every key record.
Does anyone know how this can be achieved through a Microsoft Word Mail Merge?
(i know SSRS,etc.. are better tools for this, but i have to use MS Word because on the client this is the only thing that's possible)
Yes - this is possible using WORDs mail merge.
I don't think you can do it with your data the way it is now. There's not much that can be done to manipulate the data before it gets to the mail merge.
You would need to clean up the data to combine the properties for each person into one field before you can do the merge.
Is your data in Excel? You can write some VBA to combine the properties field.
If it's in a database, you can use SQL to combine the fields using For XML Path.
Once your data is cleaned up, you would be able to use the Mail Merge Wizard.
For the Doc Type, select Letter and use a blank page (current document).
Then select your data.
The next step is to Write Your Letter. Type your field name (i.e. **Name: **) and click on the Insert Merge Field and select the field to insert.
Repeat for all you fields.

SUMIFS with multiple criteria, one of which is a single day

I'm trying to get a formula that will break down the amount of times a user enters a contest each day.
I'm pretty new to this whole thing, basically putting it together using google to figure out the code I need to use/modify. Explaining why something works would be greatly appreciated so I can use it elsewhere!
Here's a dummy of the form I'm banging my head against.
I would like the form to be reusable, so on the Sorted form I have a date key that automatically fills out the week when you choose the first day. Because of this, I would like each formula to refer to this date key, instead of manually typing the google equivalent of 'February 1st, 2015' into the formula.
I've tried to use the SUMIFS formula, and I've run in to a few errors.
Apparently both pages have to be the same amount of rows, otherwise I get an 'Array arguments to SUMIFS are of different size'. I didn't want my 'sorted' sheet to be 1761 rows long, since all of the duplicate names will have been condensed and I wanted it prettier. Nuts to that! Guess I can hide the rows? Is there any other solution?
It looks like this works:
=SUMIFS(Entered!E3:E1000, Sorted!E3:E1000, Sorted!$E3, Entered!A3:A1000, date(Sorted!$C7))
Where entered!E: is the number of entries, sortedE: is the list of usernames, and E3 is the specific one I'm looking for. Then EnteredA3 is the list of dates and time, and Sorted!C7 is the specific date I'm looking for. I don't get any results!
If I click on my C7 and sorted!A, the little calender pops up, which means they are dates (I think?). One includes the hours:minutes:seconds and the other doesn't, which I think is my problem. I would like to have sorted!C7 be the entire day, and filter out all of those entries.
This is taking information entered via a google form which I won't have control of, so I can't really change the H:M:S additions to the date column.
Thinking ahead to day 2 and onwards, will the same formula work when sorted!C10 is C$7$+1? Is it not a date anymore?
I would also like to add up the amount of daily entries, in sorted!S7 and below. I've tried wrapping both the column of dates and the date from my day key in the date() thing, but it doesn't seem to work either.
=SUMIF(date(Entered!A3:A),date(Sorted!C7),Entered!E3:E)
It gives me a '1', and I have no idea where that comes from.
I haven't been able to find much about the google SUMIFS function, mostly how to replicate it from before it was a thing.
And for even MORE complexity:
I was wondering if it is possible to have UNIQUE find the IDs in entered!C, and return all the associated usernames. That pesky angelo changed their username to 'pants' midway through the contest, and I'd like to be able to see both names and add up both 'angelo' and 'pants' entries in the same line in my formulas.
I feel like I'll need a few hidden columns that have the UNIQUE ID number and the associated usernames that I pull into my Sorted!Username column, but I don't know how to search the IDs to find the different usernames.
I tried to google that, but I have no idea what I'm googling.
Whewph! That is a lot of questions, thanks for any help!
Too long for my taste, but you might try:
=sumifs(Entered!E:E,Entered!A:A,">="&$C$7,Entered!A:A,"<"&$C$7+1,Entered!B:B,$E3)
in Sorted!F3 and copied down to suit.
Oh my goodness, you are a hero!
My final code wound up being:
=IF(ISBLANK(Sorted!$E3)=TRUE, "", sumifs('Entered'!$E:$E,'Entered'!$A:$A,">="&$C$7,'Entered'!$A:$A,"<"&$C$7+1,'Entered'!$B:$B,$E3))
I changed the start and end points by making $C$7 into $C$7+1, and the ending one into +2. (In case anyone else is looking at this answer.)
I'm super pleased that it worked!
Using this I managed to add up each of the daily entries, just by adding up the columns they were in.
I gave up on the UNIQUE idea, if someone changes their username during the contest, then they can add up the two rows themselves.
Thanks again! I'd upvote you, but I can't yet.

How to retrieve certain entries only

this is what I´m trying to achieve:
As per buttonclick I want to populate a textfield in table A with all records from table B that have a certain value.
Kind of:
"Catch all records in B where field XYZ is 99 and put them in this textfield."
Thanks for your help! I am using FM13!
Edit:
I have an "orders" table where the order-id is a serial number. I use it to write bills from the exact order to another table.
In certain cases an order is too less for one bill, so for them i create entries in another table called "smalljobs".
But: In the smalljobs table there is one field where i can enter a specific order-id - where i write the bill on, in my case say "5".
Let´s say orders "10, 12, and 13" are small-jobs. I have one big order where I can bill smalljobs onto - in my case maybe order "5".
All I want to do: add one script to populate a certain textfield with entries from "smalljobs" where my current order-id ("5") is identified as fitting, and get Title, Costs, etc.
I was wrong from the beginning. I had to relate the "smalljobs" to a certain specific order-id, and get the informations I wanted via GetNthRecord(fieldName;recordNumber).

Reading Excel Sheet in Guvnor Rule

I have to take decision in guvnor rule based on some value in an excel sheet. So is it possible to do it in guvnor rule? Let me explain a simple example of what I want to do exactly:
Rule: Read average salary in particular country for a person. Than based on avg. salary compute other calculations in rule.
I will get person's country in input. Then I have to take that country and check in Excel Sheet for the average salary and perform calculations based on it.
Excel content:
Country Salary
IND $2000
USA $3000
CHN $1900
Now if the input is Person with country IND. So how can I read excel in guvnor?
Is it better to read excel in guvnor or read it in java code itself before calling the rule and adding it the value as one of the pojo field.
Any help much appreciated.
I would parse the xls file externally and insert the data as facts (or globals if you wish). So you you can write rules like:
when
Person($country: country)
AvgSalary(country == $country, $salary: salary) //This fact comes from the xls.
then
...
end
Another option is to encapsulate the parsing of the xls file and provide a mechanism to extract a particular salary for a particular country. In this case, you can provide that mechanism using a global and write rules like this one:
global XLSParser; // your parser class
rule "..."
when
Person($country: country)
$salary: Double() from XLSParser.getAvgSalary($country)
then
...
end
Hope it helps,