# Take a specific part of a matrix imported from a .xls

i would like to know if there are any ways to link headings of a table i had imported with the data in the table itself. I imported a matrix from an excel file and i want to take a specific part of it. For example if in my table one row heads with "Italy" i want to know a procedure to extract in mathematica the content of the row (or the column or both of them) just writing (in mathematic) the name of the row (or the column)

Thanks! (sorry if i'had not explained it too much clearly)

Let's assume your excel sheet has three columns with headings Oct through Dez.

Import it

imp = Catenate @ Import["excel.xlsx"]


{{"Okt", "Nov", "Dez"}, {10., 11., 12.}, {1., 2., 3.}}

The Catenate is necessary to remove the outermost brackets.

head = imp[[1]]


{"Okt", "Nov", "Dez"}

Get values

vals = imp[[2 ;;]]


{{10., 11., 12.}, {1., 2., 3.}}

[[]] is a short form for Part and 2;; means: from the 2nd position until the end

Build an Association

data = Association@Thread[Rule[head, Transpose@vals]]


<|"Okt" -> {10., 1.}, "Nov" -> {11., 2.}, "Dez" -> {12., 3.}|>

You can now directly refer to your column names:

data["Nov"]


{11., 2.}

• Thank you. Now i have to try it because i'm working with excel files with thousend of rows and columns. My real problem was to create an association with the heading of the row (for example) and the content of the row itself. So, when in mathematica i digit the name of the headings's row i can recall the row i need, like i sad if my row calls "Italy" (after i imported the file in mathematica), i digit "Italy" and i can get the informations, all the data in the row..e so.. Commented Nov 27, 2015 at 11:15
• If your headings are the first items of the rows you would import with Transpose @ Catenate @ Import["excel.xlsx"]. The rest of my answer doesn't change.
– eldo
Commented Nov 27, 2015 at 11:23
• the table i'm trying to import is an Input-Output table which has the headings i will associate with dataset in the first and second row , and in the first and second column Commented Nov 27, 2015 at 12:43
• Could you show a small example of your data? Do you really need four different indexes?
– eldo
Commented Nov 27, 2015 at 13:08
• [!file:///C:/Users/Andrea/Pictures/Immagine.png] sorry.i'm new in this forum ..I'm trying to understand how to put images...i don't know if it works..however it's necessary four different indexes because this is how this kind of table works Commented Nov 27, 2015 at 14:55

Looks like you are looking for the Dataset format. Using "ExampleData/elements.xls" to get an example .xls file:

ds = SemanticImport["ExampleData/elements.xls"]


Now

ds[1]


and

ds[All, "Name"]


• For this specific example using SemanticImport["ExampleData/elements.xls", {Integer, String, String, Real}] would result in a better formated Dataset. Commented Nov 27, 2015 at 16:40