Увеличивать значение снова и снова, если оно содержит строку, в противном случае сбросить до 1 и продолжить?

Итак, у меня есть 2 столбца в файле Excel, вы можете видеть, что все то же самое, кроме SKU в конце. Артикул либо повторяется (например, HGAF147, HGAF147 S.jpg и т. д.), а затем переходит к другому артикулу.

Желаемый результат:

Мне нужен скрипт, который будет повторять счетчик, если артикул такой же, иначе вернуться к 1 и сбросить подсчет.

Я пробовал =COUNTIF(A$2:A2,LEFT(A2,FIND("/",A2))&"*")

Но он продолжает расти, несмотря на изменение SKU. Кто-нибудь может увидеть, в чем проблема? Спасибо!

Вы ищете подстроку в LEFT из «/», номера SKU, я полагаю, в RIGHT

cybernetic.nomad 17.04.2023 19:12

Да, это правильно. Он все еще не работает, показывает только 0?

HelloWorld 17.04.2023 19:13

Попробуйте =COUNTIF(A$2:A2,"*" & RIGHT(A2, FIND("/",A2)))

cybernetic.nomad 17.04.2023 19:14

Спасибо, но это не работает полностью, например, первые 3 SKUS показывают 1, 1, 1 вместо 1, 2, 3, так как есть 3 дубликата (HGAF147)

HelloWorld 17.04.2023 19:22

Я думаю, вам нужно быть более точным в определении того, как идентифицировать SKU? Возьмем ваш пример со 150: 150 это SKU? Или HGAF150? Если запись имеет суффикс, всегда ли он отделяется пробелом? Всегда ли число состоит из трех цифр? Может ли быть что-то после цифр, что является частью SKU?

FunThomas 17.04.2023 19:30

@FunThomas: HGAF150 — это артикул, и почти всегда между артикулом (HGAF150) и именем расширения изображения есть пробел, за исключением случаев, когда это основное изображение (оно заканчивается только на .jpg). Но в первом примере вы видите HGAF147, HGAF147 S.jpg

HelloWorld 17.04.2023 19:35

Возможно, здесь будут полезны скриншоты желаемого результата. Кроме того, каталоги всегда будут https://decormarket.com/SH/NL/?

cybernetic.nomad 17.04.2023 19:39

Да, каталоги всегда будут одинаковыми. Я обновил желаемый результат сейчас, пожалуйста, посмотрите, спасибо!

HelloWorld 17.04.2023 19:40

Попробуйте =COUNTIF(A$2:A2,"*" & MID(A1,30,7)& "*")

cybernetic.nomad 17.04.2023 19:43

@cybernetic.nomad это дает хорошие результаты для 1-го 3, но для следующей партии (HGAF150) он начинается с 3?

HelloWorld 17.04.2023 21:08
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
1
10
59
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я почти уверен, что есть формула, которая могла бы получить SKU из строки, но мне проще использовать небольшую функцию VBA, которую вы можете использовать как UDF. Кроме того, есть и другие способы реализации (например, с помощью регулярных выражений) - это дело вкуса.

Function getSKU(ByVal s As String) As String
    Dim p As Long
    p = InStrRev(s, "/")
    If p > 0 Then s = Mid(s, p + 1)  ' Cut everything before the last slash
    
    p = InStrRev(s, ".")
    If p > 0 Then s = Left(s, p - 1)  ' Cut extension if any
    p = InStrRev(s, " ")
    If p > 0 Then s = Left(s, p - 1)  ' Cut prefix if any
    
    getSKU = s
End Function

Теперь вы можете использовать его с такой формулой (при условии, что ваши данные начинаются с A2)

=IF(getSKU(A2)=getSKU(A1); B1+1;1)

Спасибо! Я понял это отсюда. Отличный ответ ^_^

HelloWorld 17.04.2023 21:18

Другие вопросы по теме