У меня есть книга Excel с многочисленными листами под названием "Неделя1", "Неделя2", "Неделя3" ... "Неделя7". Каждую неделю я вписываю идентификаторы клиентов людей, покупающих мой продукт, в столбец C, и - поскольку мне интересно знать, являются ли они постоянными или новыми, - я написал функцию для проверки, введены ли клиенты, которых я ввожу. в Week2-Week7 появляются новые клиенты или они уже купили мой продукт.
С этой целью я разработал следующую формулу, которую я ввел в столбец F для недели 2:
=IF(COUNTIF(Week1!$C$3:$C$100,C3)>=1,"Old","New")
С соответствующей частью "Week1" выглядит так:
_|-----C-----|-----F-----|
3| ValPot1 | *blank* |
С соответствующей частью "Week2" выглядит так:
_|-----C-----|-----F-----|
3| ValPot1 | Old |
Теперь, хотя это работает хорошо, это становится довольно громоздким на неделе 7, когда я должен использовать следующую функцию:
= ЕСЛИ (ИЛИ (COUNTIF (Week1!$ C $ 3:$ C $ 100, С3)> = 1, СЧЕТЕСЛИ (Week2!$ C $ 3:$ C $ 100, С3)> = 1, СЧЕТЕСЛИ (Week3!$ C $ 3:$ C $ 100, С3)> = 1, СЧЕТЕСЛИ (Week4!$ C $ 3:$ C $ 10> 0, С3)> = 1, СЧЕТЕСЛИ (Week5!$ C $ 3:$ C $ 100, С3)> = 1, СЧЕТЕСЛИ (Week6!$ C $ 3:$ C $ 100, C3)> = 1), "Старый", "Новый")
Следовательно, я пытался (безуспешно) использовать следующую функцию VBA:
Function SHEETOFFSET(offset, Ref)
' Returns cell contents at Ref, in sheet offset
Application.Volatile
With Application.Caller.Parent
SHEETOFFSET = .Parent.Sheets(.Index + offset) _
.Range(Ref.Address).Value
End With
End Function
Включив его в лист "Week2", ячейка F3
, следующим образом:
=IF(COUNTIF(SHEETOFFSET(-1,$C$3):SHEETOFFSET(-1,$C$100),C3)>=1,"Old","New")
По сути, я просто заменяю свою предыдущую ссылку на лист (недели 1!$ C $ 3:$ C $ 100) с моей новой функцией SHEETOFFSET ....
К сожалению, это не работает, и просто возвращает # #VALUE!
ошибка. Что я делаю не так, и как я могу исправить свою функцию?