Converting a num2str(a) to letter with Numbers bigger the 27

2 vues (au cours des 30 derniers jours)
Katy Weihrich
Katy Weihrich le 16 Mai 2016

Hello,

I am trying to transfer Data from 30 Days from 30 Excel Tables (one for each day) to a single Excel Table (as a summary). So it is important for me to get the output of "AA", "AB", ... when I reach the higher numbers.

I tried a few different versions, but for some reasons the "Day" variable just changes its number (for example from 1 to 50)

Try 1)

a = 1; b = 30;
while a <= b;            
Day = num2str(a);  
asciiValue = [Day];
Day_Letter = char(asciiValue);
Save_Group = [Day_Letter Day ':' Day_Letter Day]  
a = a + 1;
end 

Try 2)

if Day <=25
      CharDay = Day;
      Day_Letter = char(CharDay)
else
if Day == 26 
      Day_Letter = 'AA'
else if Day == 27 
          Day_Letter = 'AB' 
      else if Day == 28
              Day_Letter = 'AC' 
          else if Day == 29 
                  Day_Letter = 'AD' 
              else if Day == 30 
                  Day_Letter = 'AE' 
                  end 
              end 
          end 
      end 
  end
  end

And by now I got desperate and started doing it like this:

Day = num2str(a);
    if Day == 1;
        Day_Letter = 'B' end
    if Day == 2;
        Day_Letter = 'C' end
    if Day == 3;
        Day_Letter = 'D' end
    if Day == 4;
        Day_Letter = 'E' end
    if Day == 5;
        Day_Letter + 'F' end
    if Day == 6;
        Day_Letter = 'G' end
    if Day == 7;
        Day_Letter = 'H' end
    if Day == 8;
        Day_Letter = 'I' end
    if Day == 9;
        Day_Letter = 'J' end
    if Day == 10;
        Day_Letter = 'K' end
    if Day == 11;
        Day_Letter + 'L' end
    if Day == 12;
        Day_Letter = 'M' end
    if Day == 13;
        Day_Letter = 'N' end
    if Day == 14;
        Day_Letter = 'O' end
    if Day == 15;
        Day_Letter = 'P' end
    if Day == 16;
        Day_Letter = 'Q' end
    if Day == 17;
        Day_Letter + 'R' end
    if Day == 18;
        Day_Letter = 'S' end
    if Day == 19;
        Day_Letter = 'T' end
    if Day == 20;
        Day_Letter = 'U' end
    if Day == 21;
        Day_Letter = 'V' end
    if Day == 22;
        Day_Letter = 'W' end
    if Day == 23;
        Day_Letter + 'X' end
    if Day == 24;
        Day_Letter = 'Y' end
    if Day == 25;
        Day_Letter = 'Z' end
    if Day == 26;
        Day_Letter = 'AA' end
    if Day == 27;
        Day_Letter = 'AB' end
    if Day == 28;
        Day_Letter = 'AC' end
    if Day == 29;
        Day_Letter + 'AD' end
    if Day == 30;
        Day_Letter = 'AE' end

Réponses (1)

Walter Roberson
Walter Roberson le 17 Mai 2016
dayletters = [num2cell(['1':'9', 'A':'Z']), {'AA', 'AB', 'AC', 'AD', AE'}];
...
Day_Letter = dayletters{a};

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by