Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти

 
Расширенный поиск

800715 Сообщений в 11247 Тем- от 88232 Пользователей - Последний пользователь: Costa8520

18 Июль 2019, 20:36:25
ADSL.Kirov.RuСообществаПрограммирование (Модератор: Ivanidze)Тема: Простой вопрос по Excel
Страниц: [1]   Вниз
Печать
Автор Тема: Простой вопрос по Excel  (Прочитано 760 раз)
_AxeL_
Пользователь
**
Пол: Мужской
Сообщений: 54



WWW
« : 31 Май 2010, 19:37:36 »

Народ подскажите плз, как правильно написать формулу в Excel. Требуется выполнить условие например =если( х=1 или 2 ; истина 3 ; ложь 4) туплю под конец дня не судите строго  Смеющийся
Записан


http://kirov-dc.ru
http://www.mod43.ru - USB сувениры и гаджеты, моддинг товары.
Fluderman
Ветеран
*****
Пол: Мужской
Сообщений: 1659



« Ответ #1 : 31 Май 2010, 20:17:08 »

так наверно
Записан
Hesus
Новичок
*
Пол: Мужской
Сообщений: 6


« Ответ #2 : 31 Май 2010, 20:54:38 »

=ЕСЛИ(ИЛИ(x=1;x=2);3;4)
Записан
_AxeL_
Пользователь
**
Пол: Мужской
Сообщений: 54



WWW
« Ответ #3 : 31 Май 2010, 22:13:07 »

=ЕСЛИ(ИЛИ(x=1;x=2);3;4)
решение прикольное, но немного неподходит щас обьясню.
есть массив вида {=СУММ(ЕСЛИ(A1:A10=1;25;0))} т.е. необходимо чтобы при вводе значений 1 или 2 (другие значения 3, 4, 5 и т.д. игнорируются как 0) в ячейки с А1 по А10, в другой ячейке например "B1" суммировалось значение "25". Т.е. если в 3-х из 10 ячеек стоит значение 1 или 2, в ячейке "В1" должно быть "75". такую формулу я вывел "{=СУММ(ЕСЛИ(A1:A10=1;25;0))}" и она работает но только с одним значением!
Если использовать твою формулу {=СУММ(ЕСЛИ(ИЛИ(A1:A10=1;A1:A10=2);25;0))} то в ячейке "В1" значение "25" не суммируется а остается таковым!

Конечно можно сделать два массива на каждое число 1 и 2, и потом вывести сложением в ячейку В1. но тут уж дело принцпа )) можно ли реализовать одной формулой!
« Последнее редактирование: 31 Май 2010, 22:49:47 от _AxeL_ » Записан


http://kirov-dc.ru
http://www.mod43.ru - USB сувениры и гаджеты, моддинг товары.
Le0nid
Новичок
*
Пол: Мужской
Сообщений: 17



« Ответ #4 : 31 Май 2010, 23:18:06 »

=(СЧЁТЕСЛИ(R1C1:R10C1;"=1")+СЧЁТЕСЛИ(R1C1:R10C1;"=2"))*25

соответственно тебе надо для своего обозначения ячеек заменить R1C1:R10C1 на A1:A10
считает колмчество единиц, затем количество двоек в диапазоне, складывает, затем сумму умножает на 25
Записан
_AxeL_
Пользователь
**
Пол: Мужской
Сообщений: 54



WWW
« Ответ #5 : 31 Май 2010, 23:52:32 »

=(СЧЁТЕСЛИ(R1C1:R10C1;"=1")+СЧЁТЕСЛИ(R1C1:R10C1;"=2"))*25

соответственно тебе надо для своего обозначения ячеек заменить R1C1:R10C1 на A1:A10
считает колмчество единиц, затем количество двоек в диапазоне, складывает, затем сумму умножает на 25

Вот СПАСИБО !!! Отлично !!! Респект !!!
Говорил же все просто ))) правда про функцию "СЧЁТЕСЛИ" я как то и незадумывался  Обеспокоенный
« Последнее редактирование: 31 Май 2010, 23:58:35 от _AxeL_ » Записан


http://kirov-dc.ru
http://www.mod43.ru - USB сувениры и гаджеты, моддинг товары.
Blue_a_p
Постоялец
***
Пол: Мужской
Сообщений: 143



« Ответ #6 : 01 Июнь 2010, 13:51:36 »

ексель изучаем  Обеспокоенный
Записан
zulus
Ветеран
*****
Пол: Мужской
Сообщений: 3085



« Ответ #7 : 05 Декабрь 2013, 08:32:21 »

не буду создавать тему из названия понятно, что вопрос по эхвелю Подмигивающий
итак, пишется (вернее, уже написана) прога которая сливает данные в эксель и создаёт несколько вкладок…
мне очень хочется раскрасить некоторые вкладки разными цветами, а имя функции не знаю.
вот как я создаю вкладки в книге:
Код:
vVarBook=vVarBooks.OlePropertyGet("Item",1);
vVarSheets=vVarBook.OlePropertyGet("Worksheets") ;
vVarSheet=vVarSheets.OlePropertyGet("Item",wsh); //вш – это номер вкладки… в книге
vVarSheet.OlePropertySet("Name", id.c_str());

vVarSheet.OleProcedure("Activate");

вот так пытался покрасить нужные вкладки, но не выходит… тырнета нет, а знаний мало, поможайте пожалуйста…
Код:
//            vVarSheet.OlePropertySet("Color", clRed); // ругается что не знает имени Итем… ИтемКолор и просто Колор….. какое надо сюда воткнуть ???
//            vVarSheet.OlePropertyGet("Color", clRed);
//            vVarBook.OlePropertyGet("ActiveSheet").OlePropertySet("ItemColor", clRed);

да и ещё... раскрашивать буду не при создании книги (вкладки в книге), а при выводе туда данных и после некоего анализа...
примерно так должно выглядеть:
Записан

Когда варишь людей в кипятке - первое время их можно не помешивать.Они делают это сами.
axel_vo
Ветеран
*****
Пол: Мужской
Сообщений: 556



« Ответ #8 : 05 Декабрь 2013, 08:54:02 »

Вот что нарыл:
"Задача: Нужно програмно создать новый лист, при этом выдается запрос о его имени и цвете.

С именем пользую просто инпутбокс, а вот с выбором цвета ярлычка...
цвет меняется через
лист.tab.index = цвет
но он не подчиняется стандартной схеме RGB!
А выберается из константного набора около 20-30 цветов.
Когда просто из екселя меняешь цвет, то вылезает маленькое окошечко с этой палитрой.

Главный вопрос: как его вызвать программно?

ЗЫ: а еще заодно как вызвать стандартную палитру RGB?"

Ему отвечают:
"Application.CommandBars.FindControl(ID:=5747).Execute"

и для разных версий оффиса:
"With Application
     If Val(.Version) >= 10 Then
        .CommandBars.FindControl(ID:=5747).Execute
     Else
        MsgBox "В версии : " & .Version & vbCrLf & _
        "невозможно вызвать диалоговое окно" & vbCrLf & _
        "изменения цвета ярлычка", vbExclamation, ""
     End If
End With"

Сойдёт ли?
« Последнее редактирование: 05 Декабрь 2013, 08:55:35 от axel_vo » Записан


zulus
Ветеран
*****
Пол: Мужской
Сообщений: 3085



« Ответ #9 : 05 Декабрь 2013, 09:15:55 »

...
А выберается из константного набора около 20-30 цветов.
Когда просто из екселя меняешь цвет, то вылезает маленькое окошечко с этой палитрой.

Главный вопрос: как его вызвать программно?

ЗЫ: а еще заодно как вызвать стандартную палитру RGB?"

Ему отвечают:
"Application.CommandBars.FindControl(ID:=5747).Execute"

...
Сойдёт ли?
это метод вызова диалогового окна с выбором цветов... маленько не то Грустный
мне нужно изменить цвет программно
Записан

Когда варишь людей в кипятке - первое время их можно не помешивать.Они делают это сами.
axel_vo
Ветеран
*****
Пол: Мужской
Сообщений: 556



« Ответ #10 : 05 Декабрь 2013, 09:20:37 »

Ну тогда вот ещё:
"В модуль листа:

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("a1") <> "" Then Sheets("Лист1").Tab.Color = 255
End Sub

При заполнении ячейки А1 любым значением, цвет ярлыка листа1 станет красным
"
Записан


zulus
Ветеран
*****
Пол: Мужской
Сообщений: 3085



« Ответ #11 : 05 Декабрь 2013, 09:32:45 »

If Range("a1") <> "" Then Sheets("Лист1").Tab.Color = 255
При заполнении ячейки А1 любым значением, цвет ярлыка листа1 станет красным
ОНО!!!!!!!!!!!
Код:
vVarSheet.OlePropertyGet("Tab").OlePropertySet("Color", clRed) ;
теперь разберусь как раскрасить только нужные вкладки во множестве формируемых файлов!

здоровья тебе, axel_vo, скорейшего отпуска и всяческих человеческих благ )))))
« Последнее редактирование: 05 Декабрь 2013, 10:25:24 от zulus » Записан

Когда варишь людей в кипятке - первое время их можно не помешивать.Они делают это сами.
axel_vo
Ветеран
*****
Пол: Мужской
Сообщений: 556



« Ответ #12 : 05 Декабрь 2013, 09:48:41 »

Да ладно, что уж там...  Обеспокоенный
Только не путай ники, а то axel'ов много на форуме, даже в этой теме есть "_AxeL_", во как!!! Ты же тоже не любишь... когда тебя с большой буквы... Подмигивающий
Записан


Страниц: [1]   Вверх
Печать
ADSL.Kirov.RuСообществаПрограммирование (Модератор: Ivanidze)Тема: Простой вопрос по Excel
Перейти в: