Search Excel spreadsheet for specific value
    12 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
    Amanda Boone
 le 19 Oct 2018
  
    
    
    
    
    Réponse apportée : Bereketab Gulai
 le 27 Mai 2020
            Hi, I'm looking to create a program that will search through an excel spreadsheet in the first column to find a specific value. Once that value is found, import the entire row, and break down each item in that row to assign it to a variable. For example:
If I excel file looks like this:
 375    10    6745    6.898
 380    11    6890    7.001
 390    12    7001    7.102
and T=380, I need Matlab to search for the row where the first column is equal to T. Once the row is imported, assign P=11, h=6890, and s=7.001
I'm just not sure how to do this with Matlab. I've looked around and found xlsread('filename') to actually read the spreadsheet, but I don't know how to pull the row and break it apart. Please, any help would be appreciated.
0 commentaires
Réponse acceptée
  YT
      
 le 19 Oct 2018
        Something like this?
%read your sheet
X = xlsread('my-excel-sheet.xlsx');
%the value your looking for
T = 380;
%get entire row where first column value = T
V = X(X(:,1) == T,:); 
%your other values assigned here
P = V(2); 
h = V(3);
s = V(4);
3 commentaires
  Kyuri Kim
 le 20 Mai 2020
				Hi, may I ask you something?
I'm keep making errors in 
     V = X(X(:,1) == T,:);
It says "The index at position 2 exceeds the array boundary."
Thank you for your help :)
  Walter Roberson
      
      
 le 20 Mai 2020
				Your X has 0 columns so X(:,1) does not exist.
The array that is denoted as [] has 0 rows and 0 columns so if you initialized to [] then it is still []
Plus de réponses (1)
  Bereketab Gulai
 le 27 Mai 2020
        Here is answer using actxserver:
excelApp = actxserver("excel.Application");
excelApp.Visible = false;
book1 = excelApp.Workbooks.Open('D:\Temporary stuff\Book1.xlsx');
% Sheet item 1 ...
sheetOne = book1.Sheets.Item(1);
foundInterfaceObj = sheetOne.Range("A:A").Find('Eric');
The returned Interface provides lots functions you may need. Row will give the row number, Value for the cell...
0 commentaires
Voir également
Catégories
				En savoir plus sur Spreadsheets dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!