Expressing Complex Ideas via Symbolic Representation (Whiteboard)

by ikecube. 0 Comments

A helpful way to communicate complex ideas is via superficial models.

Below is one such model to express the transition of an anonymous web visitor (who visits multiple times over some duration), to a known individual who can then be engaged via segmented, targted, emails until we know enough about them to pass them to a sales expert before finally being converted into a happy, paying customer.

There are certainly many ways to express this relationship, and this is only one, but as I learned from a former coworker, symbolic representation communicates more implicitely than thousands of words (written or verbal) can alone. Since then, I’ve been honing my craft on a variety of topics. It is not only fun exercising this part of the brain, but when done well, really reduces the time it takes to communicate complex ideas.

Share This:
  • Facebook
  • Twitter
  • Google Bookmarks
  • email
  • LinkedIn

The shortest lists: How to write an effective business email

by ikecube. 0 Comments

We all get really terrible business email sometimes, and sometimes we are even guilty of sending them. Considering the increadible volume of email we all send and receive, it is both efficient and courteous to do others the favor of sending concise, well constructed, and pointed emails that allow for easy reading and fitlering. Many web site articles go over-board with the psychology behind sending emails, and that is important, but most of what you need to know to get better responses from your outbound business emails can be enumerated in 5 points:

  1. Write a short subject line that delivers context and distinguishes between action and information
  2. In the email gretting, call out the recipient using their preferred name (and check that it is spelled correctly)
  3. Deliver your “ask” or call-to-action in the first line and provide supporting information in the next paragraph
  4. End by asking for a response within a certain timeframe and your name (as a courtesy as to indicate how you prefer to be addressed)
  5. If your email is longer than 5 sentences, make a phone call instead


It can be challenging to figure out what an email that is constrained to five sentences might look like, so I wrote up a ficticious example that demonstrates the above 5 points. Consider this internal-facing email between two coworkers in seperate departments:

From: Isaac Davis

To: Jonathan Smith

Subject: ABC Corp. Client Deliverable Needed



Hi Jon – I need to deliver the project brief later today.


Can you please send me your budget proposal?

The client needs to get the budgeted proposal in front of the CFO before end of quarter (tomorrow).


Please let me know if you have any questions.





In the above example, note the following:

  • Both Jonathan and Isaac prefer to use informal names rather than formal names
  • The subject line not only provides the context by specifying which client, but also specifies that something is required and tha the email is not merely informative
  • If the email were strictly informative consider putting [FYI] at the begining of the subject line
  • The first line specifies exactly what the author needs to accomplish, and then asks the recipient to provide what is needed to accomplish that.
  • The next line provides a bit of context, including a timeframe.
  • The last line offers an olive-branch in case there is a barrier to accomplishing the task.
  • The sign-off indicates that Isaac goes by the informal: “Ike” and is comfortable being addressed as such to Jonathan (who prefers Jon)

Now, because Isaac and Jonathan are coworkers, they probably have a relationship outside of email that allows them to be friendly and reinforce a positive association. If the email you are composing is to an individual outside of your company, or outside your department in a large company, you may need to include warmer language. You should still adhear to the brevity of a 5-sentence email where possible however.

Share This:
  • Facebook
  • Twitter
  • Google Bookmarks
  • email
  • LinkedIn

Excel VBA to transform Adjacency Matrix into Adjacency List

by ikecube. 0 Comments

Over on the Mr.Excel forums, I found some vba that changes the format of your data from a standard Table. This can be useful when you need to reverse the output of a pivot table and move it to a format that is more appropriate for feeding into various statistical and graphing tools. In my case, I needed an adjacency list in order to graph email flow whose data was provided to me in adjacency table format.

Adjacency Table

x y z

A 3 5 7

B 2 4 6

C 8 9 10


Adjancy List

Column1 Column2 Column3
A X 3
A Y 5
A Z 7
B X 2
B Y 4
B Z 6
C X 8
C Y 9
C Z 10


The VBA I found on Mr.Excel (posted below) has some static values that need to be updated to match the location of your table in your workbook.


Sub test()

Dim a, b(), i As Long, ii As Long, n As Long

a = Range(“A1“).CurrentRegion.Value

ReDim b(1 To UBound(a, 1) * UBound(a, 2), 1 To 3)

For ii = 2 To UBound(a, 2)

    For i = 2 To UBound(a, 1)

        If a(i, ii) <> “” Then

            n = n + 1

            b(n, 1) = a(i, 1): b(n, 2) = a(1, ii): b(n, 3) = a(i, ii)

        End If



Sheets(“sheet2“).Range(“A1“).Resize(n, 3).Value = b

End Sub


To get the full context of the conversation/requirements head over to the Mr.Excel thread.

Share This:
  • Facebook
  • Twitter
  • Google Bookmarks
  • email
  • LinkedIn

Classify Job Titles into Management Levels (Excel VBA)

by ikecube. 0 Comments


I’m almost too embarrassed to post this, but perhaps this quick and very dirty vba will help someone who wants to spend more time improving it:

How often do you get a list of job titles that are non-standardized and you need a quick way to group them into something useful? Too often.

Here is the quickest-made Excel VBA function to get the management level of an individual via their job title:

Option Explicit
Function getJobLevel(title As String)

getJobLevel = title
If LCase(title) Like "*manager*" Then getJobLevel = "Manager"
If LCase(title) Like "*manag*" Then getJobLevel = "Manager"
If LCase(title) Like "c?o" Then getJobLevel = "C-Level"
If LCase(title) Like "*chief*" Then getJobLevel = "C-Level"
If LCase(title) Like "*president*" Then getJobLevel = "C-Level"
If LCase(title) Like "*owner*" Then getJobLevel = "Owner"
If LCase(title) Like "*partner*" Then getJobLevel = "Owner"
If LCase(title) Like "*principal*" Then getJobLevel = "Executive"
If LCase(title) Like "*executive*" Then getJobLevel = "Executive"
If LCase(title) Like "*vp*" Then getJobLevel = "VP"
If LCase(title) Like "*vice president*" Then getJobLevel = "VP"
If LCase(title) Like "*director*" Then getJobLevel = "Director"
If LCase(title) Like "*student*" Then getJobLevel = "Student"

If getJobLevel = title Then getJobLevel = "Individual Contributor"

End Function



Where A2 is a reference to a cell containing a job title like “Chief Analyst”. The function will return “C-Level”. If no match is found, it will return “Individual Contributor” on the assumption that this is an acceptable error category.

If I could spend more time on this, I would have used regex to help reduce classification errors based on greedy text matching, as well as cleaner and less redundant code.

Share This:
  • Facebook
  • Twitter
  • Google Bookmarks
  • email
  • LinkedIn