Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Вопрос по Excel/Google Sheets

487  
  dragnetboy посетитель14.12.19 23:49
dragnetboy
14.12.19 23:49 
Последний раз изменено 14.12.19 23:52 (dragnetboy)

Есть в табличных процессорах функция суммы, где можно указать диапазон ячеек значения которых хотим просуммировать, например =SUMME(A2:A10).


Вопрос:

A будет ли работать если вместо А2/А10, например вписать встроенную/пользовательскую функцию?

То есть нужно чтобы при расчёте суммы бралось не просто содержание ячеек, а содержание oбработанное функцией, например:

=SUMME(SOME_EXCEL_FUNC(A2):SOME_EXCEL_FUNC(A10))

=SUMME(SOME_GOOGLESHEETS_FUNC(A2):SOME_GOOGLESHEETS_FUNC(A10))


Спрашиваю поскольку сам (пока) ничего толкового не нашёл.

#1 
Murr патриот15.12.19 00:02
Murr
NEW 15.12.19 00:02 
в ответ dragnetboy 14.12.19 23:49

https://www.contextures.com/xlFunctions01.html

Раздел:

Sum a range of cells -- OFFSET

Если не понятно - функция должна возвращать тоже что и Оффсет().

#2 
  dragnetboy посетитель15.12.19 01:36
dragnetboy
NEW 15.12.19 01:36 
в ответ Murr 15.12.19 00:02

Спасибо за ссылку, но на 1-й взгляд функция offset проблему не решает.

Конкретнее ... имеем колонку А:

(column) А

---------------------

(row) 1 "1R" // cell A1

(row) 2 "-3R" // cell A2

(row) 3 "1,5R" // cell A3

(row) 4 "-0,5R" // cell A4

(row) 5 =SUM(A1:A4) // cell A5


В данном примере offset имхо не помогает. Нужно перед суммированием кастовать стринги в числа, причём для каждой клетки из указанного диапазона. Excel может такое?


#3 
Срыв покровов коренной житель15.12.19 09:08
NEW 15.12.19 09:08 
в ответ dragnetboy 15.12.19 01:36

вроде можно производить действия со значением ячейки перед суммированием.
вот пример с округлением.

Select a blank cell that you want to place the formula, and choose and paste one of below formulas as you need, press Shift + Ctrl +Enter key to get to result:

=SUM(ROUND(A1:A6,0))

=SUM(ROUNDDOWN(A1:A6,0))

=SUM(ROUNDUP(A1:A6,0))

Then the values will be rounded/rounded up/rounded down firstly, and then sum.


#4 
  dragnetboy посетитель15.12.19 12:13
dragnetboy
NEW 15.12.19 12:13 
в ответ Срыв покровов 15.12.19 09:08, Последний раз изменено 15.12.19 12:17 (dragnetboy)

Спасибо за инфо, но мне нужно что-то более сложное, например:

=SUM(VALUE(LEFT(А1;LEN(А1)-1)):VALUE(LEFT(А4;LEN(А4)-1)))


Такой вариант увы не проходит, а каких-то "скрытых" возможностей у Excel/Google Sheets я пока не нашёл.

Похоже что без VBA в данном случае не обойтись.

#5 
Срыв покровов коренной житель15.12.19 12:17
NEW 15.12.19 12:17 
в ответ dragnetboy 15.12.19 12:13

тут как минимум синтаксис не тот, что в моем примере.

#6 
Срыв покровов коренной житель15.12.19 12:19
NEW 15.12.19 12:19 
в ответ dragnetboy 15.12.19 12:13
Похоже что без VBA в данном случае не обойтись.

достаточно воспомогательных ячеек.

#7 
  dragnetboy посетитель15.12.19 14:54
dragnetboy
NEW 15.12.19 14:54 
в ответ Срыв покровов 15.12.19 12:19
достаточно воспомогательных ячеек.

с таким же успехом можно в колонке В трансформировать каждую ячейку колонки А(текст==>число), и под колонкой В написать SUM(...).

Нее, это не интересно. Хотелось чтобы всё в ячейке SUM() делалось.

#8