задачка с Экселем

Лунный Кот
На сайте с 27.01.2006
Offline
222
976

Имеется лист Excel. В нем содержится разнообразная информация, в том числе ячейки с денежным форматом. Необходимо значения всех этих ячеек умножить на определенное число. Они расположены в произвольном порядке, не в столбик.

Как-нибудь можно сделать автоматически? Именно сами значения ячеек, без создания дополнительных связанных ячеек.

Вы мне свои достижения жизненные продемонстируйте, пожалуйста, я, возможно, возьму свои слова обратно и извинюсь прилюдно. Только думается мне, что вы банальный лась. (с) Mirson
malls
На сайте с 08.08.2005
Offline
255
#1

Если ячейки расположены в свободном порядке - то можно! Но только макросом, который "вычленит" ячейки с определенным форматированием и изменит их содержимое как нужно...

Сначала надо определить область поиска (т.е. непустые клетки) потом циклом их пройти, проверить форматирование, если совпадает с шаблоном - взять значение, умножить, и подставить обратно...

Практическое приложение такой задачи - "накрутить" для себя маржу с чужой работы... Т.е. получив от субподрядчика смету, "накрутить" ее перед отсылкой заказчику. Этим занимаетесь?

Лунный Кот
На сайте с 27.01.2006
Offline
222
#2

malls, именно этим, но не я, а мой клиент :)

malls
На сайте с 08.08.2005
Offline
255
#3
Лунный Кот:
malls, именно этим, но не я, а мой клиент :)

Можно не оправдываться 😂 - это обычный бизнес...

ЗЫ: Имхо можно еще наверное (при слабом знании VB) конвертнуть в HTML/TEXT (знаки долларов/рублей должны остаться), а потом просто PHP-ником примитивным по регулярным выражениям переколбасить во что угодно...

FribbulusXax
На сайте с 24.03.2008
Offline
47
#4

Условным форматированием не пробовали? Или там не предусмотрены такие исправления?

upd:

Пардон, эту функцию использовать не получится.

Libertad tu eres mi cuerpo!
Лунный Кот
На сайте с 27.01.2006
Offline
222
#5

эх... опять ничего дельного не советуют :(

FribbulusXax
На сайте с 24.03.2008
Offline
47
#6

Вот макрос для умножения, собственно:

Dim x, cc As Range

x = InputBox("Введите число, на которое надо умножить выделенный диапазон")

If IsNumeric(x) Then

For Each cc In Selection.SpecialCells(xlCellTypeConstants, xlNumbers) 'или вместо Selection - range("D8:J129")

cc = Round(cc * x)

Next

End If

А вот как отобрать только ячейки с денежным форматом..😕

malls
На сайте с 08.08.2005
Offline
255
#7
Лунный Кот:
эх... опять ничего дельного не советуют :(

А чего ты ждал? Без кодинга не получится... Сл-но нужно просто определить на чем кодить, я два варианта предложил - мало?

FribbulusXax:
А вот как отобрать только ячейки с денежным форматом..😕

нужно искать что-то типа NumberFormat и соответствие #,##0.00$

[Удален]
#8

В Экселе есть готовые формулы. Только я не в курсе, какие именно. Но если поштудировать справочники, нарыть можно.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий