Здравствуйте! Есть таблица с данными о пользователях в формате дата регистрации + ФИО. Каждую строку с информацией о пользователе мы помечаем цветом вручную (6 разных цветов в зависимости от действий пользователя).
Требуется создать сводную таблицу, в которой автоматически будет подсчитываться количество пользователей по неделям (с использованием функции ISOWEEKNUM(дата)) и по месяцам (формат даты дд.мм.гггг) в зависимости от даты.
Пример с реальными данными во вложении.
Спасибо заранее!
Здравствуйте! Есть таблица с данными о пользователях в формате дата регистрации + ФИО. Каждую строку с информацией о пользователе мы помечаем цветом вручную (6 разных цветов в зависимости от действий пользователя).
Требуется создать сводную таблицу, в которой автоматически будет подсчитываться количество пользователей по неделям (с использованием функции ISOWEEKNUM(дата)) и по месяцам (формат даты дд.мм.гггг) в зависимости от даты.
Serge_007, Спасибо за ответ! Я нашел способ посчитать ячейки по цветам. Но не знаю, как добавить к этому еще и условие по подсчету ячеек только в нужные даты.
[vba]
Код
function countColoredCells(countRange,colorRef) { var activeRg = SpreadsheetApp.getActiveRange(); var activeSht = SpreadsheetApp.getActiveSheet(); var activeformula = activeRg.getFormula(); var countRangeAddress = activeformula.match(/\((.*)\,/).pop().trim(); var backGrounds = activeSht.getRange(countRangeAddress).getBackgrounds(); var colorRefAddress = activeformula.match(/\,(.*)\)/).pop().trim(); var BackGround = activeSht.getRange(colorRefAddress).getBackground(); var countCells = 0; for (var i = 0; i < backGrounds.length; i++) for (var k = 0; k < backGrounds[i].length; k++) if ( backGrounds[i][k] == BackGround ) countCells = countCells + 1; return countCells; };
[/vba]
Serge_007, Спасибо за ответ! Я нашел способ посчитать ячейки по цветам. Но не знаю, как добавить к этому еще и условие по подсчету ячеек только в нужные даты.
[vba]
Код
function countColoredCells(countRange,colorRef) { var activeRg = SpreadsheetApp.getActiveRange(); var activeSht = SpreadsheetApp.getActiveSheet(); var activeformula = activeRg.getFormula(); var countRangeAddress = activeformula.match(/\((.*)\,/).pop().trim(); var backGrounds = activeSht.getRange(countRangeAddress).getBackgrounds(); var colorRefAddress = activeformula.match(/\,(.*)\)/).pop().trim(); var BackGround = activeSht.getRange(colorRefAddress).getBackground(); var countCells = 0; for (var i = 0; i < backGrounds.length; i++) for (var k = 0; k < backGrounds[i].length; k++) if ( backGrounds[i][k] == BackGround ) countCells = countCells + 1; return countCells; };
Ваш вопрос не по Excel? Код, который Вы выложили - на JavaScript
Что бы применить код в Excel, необходимо написать его на языке VBA: [vba]
Код
Function CountCcolor(range_data As range, criteria As range) As Long Dim datax As range Dim xcolor As Long xcolor = criteria.Interior.ColorIndex For Each datax In range_data If datax.Interior.ColorIndex = xcolor Then CountCcolor = CountCcolor + 1 End If Next datax End Function
Ваш вопрос не по Excel? Код, который Вы выложили - на JavaScript
Что бы применить код в Excel, необходимо написать его на языке VBA: [vba]
Код
Function CountCcolor(range_data As range, criteria As range) As Long Dim datax As range Dim xcolor As Long xcolor = criteria.Interior.ColorIndex For Each datax In range_data If datax.Interior.ColorIndex = xcolor Then CountCcolor = CountCcolor + 1 End If Next datax End Function