3

(Текущий образец сортировки :)

2-1203-4
2-1206-3
2CM-
3-1610-1
3-999
…
AR3021-A-7802
AR3021-A-7802-1
B43570-
B43570-3

Я работаю над списком запчастей на 8000+. Проблема, с которой я сталкиваюсь, заключается в том, что разные производители деталей используют разные форматы для своих номеров деталей. «Номер детали» - это поле, по которому я хочу отсортировать весь свой рабочий лист. (В этой таблице около 10 столбцов данных.)

Моя методология для решения этой проблемы состояла в том, чтобы подсчитать количество символов слева от любого символа «-» и подсчитать общее количество числовых символов в поле. (Я также установил «Номера деталей», которые начинаются с нецифрового символа, равным значению счетчика 99 для обоих расчетов, чтобы они сортировались после числовых значений.) Исходя из этого, я смог отсортировать значения слева от «-», используя МИНУТУ из двух пунктов. (Мои «Номера деталей» находятся в столбце B, и у меня есть строка заголовка, которая означает, что мой первый «Номер детали» находится в ячейке B2.)

Этот метод работал до определенного момента. Моя проблема заключается в том, что мне нужно впоследствии отсортировать значения после символа «-», что иллюстрируется ошибочным видом «3-1610-1», за которым следует «3-999»

Одно из ограничений, которое я вижу, состоит в том, что сортировка с -> Data, -> Sort дает только три столбца для сортировки. Сортировка только по символам слева от «-» стоит этих трех столбцов. Поэтому я не могу повторить весь процесс подсчета значений после символа «-» и последующей сортировки с -> Data, -> Sort после выполнения первичной сортировки.

Был ли решен вид множества различных форматов поля, таких как «Номер детали»? Есть ли макрос, который можно применить к этой проблеме? Если это так, я был бы признателен за ваш вклад.

Эти данные постоянно обновляются новыми номерами деталей, поэтому цель состоит в том, чтобы иметь возможность добавлять эти дополнительные номера деталей в конец рабочего листа и использовать макрос для корректного добавления добавленного списка.

Для записи, я не женат на моем подходе. В конце концов, это не решило мою проблему!

1 ответ1

0

Скажем, мы начнем с таких данных, как:

В B1 введите:

=TRIM(MID(SUBSTITUTE($A1,"-",REPT(" ",999)),COLUMNS($A:A)*999-998,999))

и скопировать как поперек, так и вниз:

Затем сортируйте по столбцам B, C, D, E:

Чтобы дать:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .