2013-10-03 3 views
0

Есть ли у кого-нибудь алгоритм или логика для преобразования A в 1, B в 2, ..., от Z до 26, а затем от AA до 27, от AB до 28 и т. Д. BUT BA или cb или cbe или любая строка, которая имеет буквы в порядке убывания, не должна быть пронумерована a, например: BB должно быть 53, поскольку BA не пронумеровано. Этот вопрос очень похож на Convert A to 1 B to 2 ... Z to 26 and then AA to 27 AB to 28 (column indexes to column references in Excel), но с небольшой разницей, как указано выше.String to Integer Сопоставление

+1

«A» - это строка с буквами в порядке убывания. –

+0

Я написал как BA –

+0

На каком языке вы используете? –

ответ

0

Я предполагаю, что вы хотите иметь ограниченное количество отображений

  1. Сформировать все картирование вы хотите, чтобы вам нужно

    A, B, C, ... , Z, AA, AB, ... ,AZ, BA, BB, ..., BZ

  2. отображения фильтров с буквами, не нисходящем порядке

    A, B, C, ... , AA, AB, ... ,AZ, BB, ..., BZ (BA пропало!)

    Чтобы проверить, находится ли строка в порядке убывания, просто сравните ее с ее отсортированной версией.

  3. Enumerate!

+0

Thx so much, для ответа! –

0

Предположим, что ваш первый символ в ячейке A1 и второй символ в ячейке B1, следующая формула поможет вам рассчитать значение

=IF(ISBLANK(A1),0,CODE(A1)-CODE("A")+1)*26+(CODE(B1)-CODE("A")+1) 

для только от а до Z, A1 является пустой и поставить сингл символ в B1.

+0

. Я действительно хочу сделать это программно, и nt excel в любом случае плохо видят, помогает ли ваша формула –