Как подсчитать временную метку в таблицах Google?

Мои ответы получают отметку времени, как только кто-либо отправляет опрос. Я хотел подсчитать эти метки времени помесячно.

URL – https://docs.google.com/spreadsheet/ccc?key=0AkpZp6MVqYv1dE5SZjJIODB1WF9nZDR6b1ZJZjFPenc&usp=sharing

Я хотел узнать количество положительных ответов на конкретный вопрос (скажем, Q1) за определенный месяц (скажем, май)

Столбец G не основан на отметке времени Q1, я спросил у пользователя месяц, но это неправильный способ сделать это, поэтому я перестал просить пользователя ввести месяц.


person chiragvora    schedule 12.06.2014    source источник


Ответы (1)


Сначала вам нужно преодолеть тот факт, что метка времени несовместима с форматом даты Google. Ничего страшного,... к счастью, похоже, что у вас фиксированный формат, т.е. ДД/ММ/ГГГГ. Таким образом, вы можете использовать формулы LEFT и RIGHT, например =right(left(a2,5),2) Это даст вам месяц в тексте, т.е. 05.

Здорово.

Теперь о более сложных вещах. Если у вас есть более новые электронные таблицы Google, вы можете просто использовать countifs для достижения следующих целей: =countifs(arrayformula(right(left(A$2:A,5),2)),"=05",B$2:B,"=Positive")

Для каждого месяца замените "=05" на нужный номер даты. Вы также можете создать диаграмму поиска по месяцам для всех месяцев и вопросов, чтобы вам не приходилось изменять формулу для каждого месяца и вопроса. Для этого вы заменяете "=05" на =[cell number containing month number as text] (ПРИМЕЧАНИЕ: для создания ключа поиска вам придется обратить пристальное внимание на тот факт, что вы получаете ТЕКСТ в формуле выше вместо числа. Есть разница, и они несовместимы, поскольку -является.)

Допустим, у вас нет новых электронных таблиц Google. Тогда вы можете использовать старые sumproduct() и if(). Да, это старо. См. следующее:
=sumproduct(arrayformula(if(right(left(A$2:A,5),2)="05",1,0)),arrayformula(if(B$2:B="Positive",1,0)))

Обратите внимание, что в обоих случаях вам нужно использовать формулу массива, чтобы преобразовать столбец с отметкой времени во что-то полезное. Если вы хотите упростить эту часть, удалив функции синтаксического анализа (LEFT() и RIGHT()), вам нужно изменить формат метки времени на ММ/ДД/ГГГГ. Затем вы можете подключить формулу MONTH(DATE), и все будет готово.

Затем создайте мастер-лист следующим образом (обратите внимание, что в моей формуле есть «'», чтобы сделать ее видимой для целей демонстрации, вы должны удалить ее):
введите здесь описание изображения При внимательном рассмотрении можно заметить, что подсчет неверен. Это потому, что когда я импортировал ваши временные метки, такие времена, как «06.02.2014 ...», были интерпретированы как «06 февраля» из-за автоматического форматирования Google. На вашем листе вы получите правильный счет, используя эту формулу, из-за того, как ваша временная метка заполняется автоматически.

СОВЕТ: Чтобы сделать месяц текстом, вам нужно ввести ="05" в столбце Месяц.

Пожалуйста, дайте мне знать, как вы делаете.

person N8sBug    schedule 12.06.2014
comment
Эй, когда я ввел ваш код, я столкнулся с одной проблемой.. вот URL-адрес опросной формы Google, ответы на которую автоматически обновляются в таблицах Google getcsr.com Как только будет отправлен новый ответ, тот код, который вы дали, не работает. Вы можете посмотреть. Он показывает пустой - person chiragvora; 13.06.2014
comment
У меня около 90 ответов. Когда я добавил это =right(left(a2,5),2) и перетащил его вниз до 100, он показал мне все 90. но как только приходят новые ответы, ячейки смещаются вниз, а строка 91 пуста, а строки 92-101 заполняются командой, добавленной вверху - person chiragvora; 13.06.2014
comment
Я вижу, что ты пытался сделать. Немного о right(left(a...)) просто для того, чтобы показать, как превратить месяц во что-то, что вы можете использовать. Вместо того, чтобы пытаться разбить его напрямую, вы должны использовать arrayformula(). Но чтобы достичь того, что кажется вашей конечной целью, создайте мастер-лист, который будет суммировать данные. Я обновил ответ, показав, о чем я говорю. - person N8sBug; 13.06.2014
comment
@user51818 user51818 Посмотрите следующую запись, где я немного объяснил о arrayformula(). ссылка - person N8sBug; 13.06.2014
comment
Я не могу понять, что вы пытаетесь донести. основываясь на предоставленной вами информации.. Я использовал предоставленный вами код для старого формата электронной таблицы.. и это сработало.. для моего проекта мне нужны были только положительные и отрицательные ответы.. {Проверьте мой лист 2).. Так заработало.. - person chiragvora; 13.06.2014
comment
Единственная проблема заключается в том, что он полуавтоматический ... есть ли способ, с помощью которого я могу заставить электронную таблицу автоматически заполнять месяцы ... Как и в листе 2, я вручную добавил месяцы май, июнь, июль, август ... есть ли способ, с помощью которого я могу обнаружить из моих ответов, которые предполагают, что после августа, если какие-либо ответы приходят, как в сентябре, он должен автоматически обнаруживать их и запускать все формулы, которые я сделал? Спасибо за вашу помощь.. - person chiragvora; 13.06.2014
comment
@ user51818, Да! Абсолютно! Это выполнимо наверняка. Однако для этого следует создать отдельный вопрос. Исходя из вашего вопроса, формулы, которые я предоставил, отвечают на этот вопрос. Ответ здесь будет очень длинным, вы смотрите на создание отдельного скрипта. Поверь мне, очень даже способен. Ваш вопрос должен выглядеть так: как мне автоматически определить и проанализировать строку, чтобы заполнить ячейку результатом. Однако вам придется предоставить много деталей. Здесь много вопросов о том, как это должно быть реализовано. Отметьте этот вопрос как ответ и начните новый. - person N8sBug; 13.06.2014