Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

23 Май 2019, 13:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Вы можете задать вопрос по LibreOffice или Apache OpenOffice  без регистрации, используя форму
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 »   Вниз
  Печать  
Автор Тема: Подсчет количества чисел в таблице  (Прочитано 15325 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Alsagar
Участник
**
Offline Offline

Сообщений: 17


« Стартовое сообщение: 30 Январь 2012, 20:48 »

Здравствуйте!Подскажите, есть необходимость подсчитать количество ЧИСЕЛ  в строках,ячейках,столбцах
Пример....

А1 значение ячейки 12,25,56,78
А2 значение ячейки 3,5,6
В1 значение ячейки 0,3,5,78
В2 значение ячейки 3,5
Посчитать "количество чисел в" А1,В1=4+4=8
Посчитать "количество чисел в" А1,В1,В2=4+4+2=10
Как это осуществить,если можно без макросов.....
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #1: 30 Январь 2012, 21:14 »

Добро пожаловать на форум!
Можно и без макросов.
Формула получится не очень простой, но результат вернуть должна правильный.
Фокус заключается в том, что подсчитывать нужно не числа, а запятые. Например, формула
Код:
=LEN(A1)-LEN(SUBSTITUTE(A1;",";""))+1
из общей долины строки в ячейке A1 вычитает длину той же строки с "вычеркнутыми" запятыми и увеличивает значение на единичку. Получаем 4 - количество чисел, разделенных запятыми.
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Alsagar
Участник
**
Offline Offline

Сообщений: 17


« Ответ #2: 30 Январь 2012, 21:26 »

все это хорошо,но иногда пользователь ошибается и записывает символы через две запятые Пример 45,34,5,,6,7 и хуже всего что почти всегда после последнего числа в ячейке оставляет тоже запятую Пример 3,4,5,3,4,
Заставить пользователя следить за правильным оформлением  фактически не реально....(хотя наверное нужно)
Других вариантов нет?
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #3: 30 Январь 2012, 21:36 »

Есть. Но это уже с макросом
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Alsagar
Участник
**
Offline Offline

Сообщений: 17


« Ответ #4: 30 Январь 2012, 21:41 »

Цитата:
Есть. Но это уже с макросом
Обеспокоенный
Подскажите как,если можно подробно,просто в этом софте я с макросами не работал.....
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #5: 30 Январь 2012, 22:06 »

А в каком работал? В Excel? Тогда всё то же самое.
Alt+F11 - окно управления макросами
Создать модуль, задать ему имя
Откроется редактор макросов с заготовкой процедуры Main
Вместо неё записываешь функцию:
Код:
Function COUNT_NUMBER(StrToCount As String, Optional delimit As String)
Dim arr ' Временный массив строк
Dim i% ' Переменная цикла
Dim res&
If IsMissing(delimit) Then delimit = "," ' Если разделитель не указан, считать его запятой
REM Если анализируемая строка пустая - возвращаем 0
COUNT_NUMBER = 0
If (Len(StrToCount) = 0) OR StrToCount = "0" Then Exit Function
res = 0
arr = Split(StrToCount, delimit) ' Разваливаем проверяемую строку в массив строк по указанному разделителю
For i = LBound(arr) To UBound(arr) ' Проверяем каждую получившуюся стоку
If (Len(Trim(arr(i)))>0) Then res = res + 1 ' и подсчитываем количество не пустых строк
Next i
COUNT_NUMBER = res ' Возвращаем результат
End Function
Возвращаешься в книгу, в свободной ячейке пишешь
Код:
=COUNT_NUMBER(A1)+COUNT_NUMBER(B1)+COUNT_NUMBER(B2)
Жмешь Enter и получаешь 10
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Alsagar
Участник
**
Offline Offline

Сообщений: 17


« Ответ #6: 30 Январь 2012, 22:09 »

Спасибо,завтра с утра попробую
Записан
Alsagar
Участник
**
Offline Offline

Сообщений: 17


« Ответ #7: 30 Январь 2012, 23:07 »

Все заработало.Огромное спасибо!!!!!
Простите за навязчивость ......а как сделать чтоб 0 считался тоже как одна цифра?
Записан
Рыбка Рио
Форумчанин
***
Offline Offline

Сообщений: 1 678


« Ответ #8: 31 Январь 2012, 12:45 »

а как сделать чтоб 0 считался тоже как одна цифра?
Отредактировать строчку:
Цитата:
If (Len(StrToCount) = 0) OR StrToCount = "0" Then Exit Function   
Записан

ubuntu 12.04 + LibO3.6.0
VlhOwn
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 076


« Ответ #9: 31 Январь 2012, 13:41 »

Вот оно нет времени на создание примера, но идею расскажу, как сделать без макросов:
В соседней ячейке получаем - с помощью регулярных выражений - строку, очищенную от начальных, завершающих и двойных запятых, в следующей - с их же помощью - уже одни запятые без чисел, и наконец, в последней - длину (количество запятых) предыдущей ячейки+1.
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #10: 31 Январь 2012, 14:15 »

...в последней - длину (количество запятых) предыдущей ячейки+1.
...при условии, что первоначальная ячейка не была пустой.

Если честно, эта тема мне напомнила старый баян, смешной и грустный одновременно.

Задачу мы, конечно, в общих чертах решили. Теперь, пожалуй, самое время уточнить, а какую, собственно, задачу мы решали?
Почему числа вводятся в одну ячейку? Почему разделитель запятая, а не, скажем, пробел? 3,5 в B2 это числа 3 и 5 или число "три с половиной"?
Что это за числа, раз уж простой ноль - тоже число?
Повторяются ли числа в строке или должны быть уникальными? В примерах повторяются, но это ведь только примеры.
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Alsagar
Участник
**
Offline Offline

Сообщений: 17


« Ответ #11: 31 Январь 2012, 15:54 »

Спасибо за советы....буду пробовать.....
Цитата:
Задачу мы, конечно, в общих чертах решили. Теперь, пожалуй, самое время уточнить, а какую, собственно, задачу мы решали?
уточняю.....есть рабочее место,на котором сидит оператор (моя жена),есть около 20 исполнительных устройств,сработку которых раньше отмечали по часово в пролинованной тетрадке.......кто то особо умный решил что будет проще на компе,при чем если раньше ставили в тетрадке просто черточку,например что сработал механизм например с 10.00 до 11.00 четыре раза,и так в течение суток.....то теперь ставится в  ячейке минуты через запятую,в строке с 10.00-11.00 типа срабатывал в 0,4,34,55,59  подразумевая минуты,ноль означает что сработал ровно в 10.00 и так далее.....кроме этого в течение смены нужно еще и посчитать количество сработок по каждому механизму за каждый час и за сутки, а вот времени на это не всегда хватает,настаивать на изменение ведения делопроизводства не могу,за разделительный знак молчу тоже,так как у них только мышка,и мини клава(юсб NUMpad).С ихним админом договорился что он подкинет переделанную таблицу,сам менять он не будет так как админ он только на бумаге и с его слов ни чего не понимает в таблицах....вот желание помочь жене и сподвигло на написание этого поста,так как простого решения в хелпе не нашел..........я электронщик,а не программист.........под форточками игрался с таблицами лет десять назад.....многое забылось,еще больше не зналось............

Цитата:
Повторяются ли числа в строке или должны быть уникальными?
думаю что выше понятно написал....
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #12: 31 Январь 2012, 18:53 »

Блин, Alsagar, что ж ты раньше не сказал! Эта задачка гораздо вкуснее первоначальной!

Давай уточним:
Мышь есть, OpenOffice.org установлен.
Устройств что-то около 20 (кнопки на форме с названиями или номерами устройств, четыре ряда по пять штук).
Нажатие на кнопку фиксирует дату-время сработки указанного устройства.
Данные накапливаются за сутки.
Нужна статистика за произвольный интервал времени (час, смена, сутки, неделя и т.п.)
Желательно в виде красивого цветного графика (чтобы всем нос утереть)

Я всё верно изложил?

Еще одно уточнение: супруга занимается только этим? Или попутно еще что-то делает на компьютере и должна будет переключаться в окошко регистрации из других программ?

PS. С этим зверем - юсб NUMpad - никогда вживую не сталкивался, только на фотках видел пару раз. Там сколько кнопок? Меньше 20?
« Последнее редактирование: 31 Январь 2012, 18:56 от JohnSUN » Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Alsagar
Участник
**
Offline Offline

Сообщений: 17


« Ответ #13: 31 Январь 2012, 22:43 »

Цитата:
Давай уточним:
Все намного хуже и проще........тем более график там ни кому не нужен.....
Имеем 22 cтолбца,с наименованием приборов П1,П2 и т.д до П22
и 24 строки с значениями 00:00-01:00;01:00-02:00 и т.д в итоге сутки....
К примеру прибор П12 сработал в период с 05:00 до 06:00 5 раз,оператор записывает в ячейки по пересечению строки и столбца время в формате 0,12,24,33,56......вот количество сработок и нужно посчитать по каждому столбцу за сутки
вот картинка к примеру

После прошествии суток таблица распечатывается ,далее на стол технологу,и подкалывается
в учетную папку.....что бы потом нормировщик ВРУЧНУЮ!!!! посчитал кол сработок каждого прибора,для того чтоб знать когда его заменить.........
Записан
Alsagar
Участник
**
Offline Offline

Сообщений: 17


« Ответ #14: 31 Январь 2012, 23:23 »

Цитата:
С этим зверем - юсб NUMpad - никогда вживую не сталкивался
17 функциональных клавиш+8 специальных "горячих",типа калькулятор,громкость +-,mute и т.д....



попробовал сегодня с редактированием строчки отвечающей за ноль,тоже нюанс теперь же пустая строка тоже считается за цифру,как это можно обойти?
« Последнее редактирование: 1 Февраль 2012, 10:33 от Alsagar » Записан
Страниц: 1 2 »   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!