Итак, у меня есть 2 столбца в файле Excel, вы можете видеть, что все то же самое, кроме SKU в конце. Артикул либо повторяется (например, HGAF147, HGAF147 S.jpg и т. д.), а затем переходит к другому артикулу.
Желаемый результат:
Мне нужен скрипт, который будет повторять счетчик, если артикул такой же, иначе вернуться к 1 и сбросить подсчет.
Я пробовал =COUNTIF(A$2:A2,LEFT(A2,FIND("/",A2))&"*")
Но он продолжает расти, несмотря на изменение SKU. Кто-нибудь может увидеть, в чем проблема? Спасибо!
Да, это правильно. Он все еще не работает, показывает только 0?
Попробуйте =COUNTIF(A$2:A2,"*" & RIGHT(A2, FIND("/",A2)))
Спасибо, но это не работает полностью, например, первые 3 SKUS показывают 1, 1, 1 вместо 1, 2, 3, так как есть 3 дубликата (HGAF147)
Я думаю, вам нужно быть более точным в определении того, как идентифицировать SKU? Возьмем ваш пример со 150: 150
это SKU? Или HGAF150
? Если запись имеет суффикс, всегда ли он отделяется пробелом? Всегда ли число состоит из трех цифр? Может ли быть что-то после цифр, что является частью SKU?
@FunThomas: HGAF150 — это артикул, и почти всегда между артикулом (HGAF150) и именем расширения изображения есть пробел, за исключением случаев, когда это основное изображение (оно заканчивается только на .jpg). Но в первом примере вы видите HGAF147, HGAF147 S.jpg
Возможно, здесь будут полезны скриншоты желаемого результата. Кроме того, каталоги всегда будут https://decormarket.com/SH/NL/
?
Да, каталоги всегда будут одинаковыми. Я обновил желаемый результат сейчас, пожалуйста, посмотрите, спасибо!
Попробуйте =COUNTIF(A$2:A2,"*" & MID(A1,30,7)& "*")
@cybernetic.nomad это дает хорошие результаты для 1-го 3, но для следующей партии (HGAF150) он начинается с 3?
Я почти уверен, что есть формула, которая могла бы получить 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)
Спасибо! Я понял это отсюда. Отличный ответ ^_^
Вы ищете подстроку в
LEFT
из «/», номера SKU, я полагаю, вRIGHT