| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > Формулы excel'я

Формулы excel'я

Ответ
Поиск в этой теме
Непрочитано 05.05.2010, 08:16 #1
Формулы excel'я
Alma3
 
Кап.строй
 
Регистрация: 12.12.2009
Сообщений: 60

Доброго времени суток, уважаемые форумчане! Вот тут столкнулся с проблемкой... Как в экселе формулы писать это понятно, а можно ли как-нибудь сделать так, чтобы в ячейке, кроме ответа появлялось ещё и решение! Вот допустим простой пример: в ячейку А1 вводим длину, в ячейку А2 - ширину, а в ячейку А3 вводим "=А1*А2", т.е. он покажет значение площади в числах! А можно ли как-нибудь получить результат в виде формулы, т.е. допустим длина и ширина по 1м, вводим эти данные, и необходимо, чтобы вместо 1м., програмка писала 1*1=1...? Возможно ли это? Есть ли какая-0нить команда Экселя, которая отображает формулы, причем чтобы не номером ячейки, а именно ее значением? Спаисбо за внимание! Заранее благодарен!
Просмотров: 5789
 
Непрочитано 05.05.2010, 08:41
#2
Selkoff


 
Регистрация: 01.08.2008
Советский Союз
Сообщений: 191


Русский лень, бессмысленный и беспощадный )

p.s. осваивайте MathCAD
Selkoff вне форума  
 
Непрочитано 05.05.2010, 08:49
#3
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от Alma3 Посмотреть сообщение
Есть ли какая-0нить команда Экселя, которая отображает формулы, причем чтобы не номером ячейки, а именно ее значением?
Вуаля!
Вложения
Тип файла: zip Книга1.zip (1.3 Кб, 303 просмотров)
 
 
Непрочитано 05.05.2010, 08:58
#4
RrRR


 
Регистрация: 23.04.2009
Сообщений: 637


http://forum.dwg.ru/showthread.php?t=13590
RrRR вне форума  
 
Автор темы   Непрочитано 05.05.2010, 09:20
#5
Alma3

Кап.строй
 
Регистрация: 12.12.2009
Сообщений: 60


всем большое спаисбо за ответы! =)
Цитата:
p.s. осваивайте MathCAD
А он лучше экселя?

И ещё вопрос: Можно ли каким-нибудь образом вставлять формулы из mathtype 5 в эксель? Чтобы они вставлялись не картинкой, а или формулой, или по ячейкам втыкалися?
P.S. сорри, если подобный вопрос уже был...
Alma3 вне форума  
 
Непрочитано 05.05.2010, 09:38
#6
Selkoff


 
Регистрация: 01.08.2008
Советский Союз
Сообщений: 191


Цитата:
Сообщение от Alma3 Посмотреть сообщение
А он лучше экселя?
У меня нет однозначного ответа на этот вопрос.
Selkoff вне форума  
 
Непрочитано 05.05.2010, 12:03
#7
KronSerg

Вода - моя работа
 
Регистрация: 10.11.2009
Санкт-Петербург
Сообщений: 3,639


Цитата:
Сообщение от AlphaGeo Посмотреть сообщение
Вуаля!
А на кой сцепить-то сделано, всё получится, если после "=" оставить выражение в скобках.
__________________
Нерешаемых проблем не бывает.
KronSerg вне форума  
 
Непрочитано 05.05.2010, 12:27
#8
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от KronSerg Посмотреть сообщение
А на кой сцепить-то сделано, всё получится, если после "=" оставить выражение в скобках.
Тогда вот так...
Вложения
Тип файла: zip Книга2.zip (1.3 Кб, 157 просмотров)
 
 
Непрочитано 05.05.2010, 14:44
#9
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,853


Что-то стандартной функции получения формулы я не нашел, поэтому могу предложить только
Код:
[Выделить все]
Public Function GetCellFormula(Adress As Range) As String
  GetCellFormula = Adress.Formula
End Function
P.S. Это без разбора - какая ячейка какое значение имеет... Такой парсер мне не по силам
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 05.05.2010, 16:25
#10
KronSerg

Вода - моя работа
 
Регистрация: 10.11.2009
Санкт-Петербург
Сообщений: 3,639


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
P.S. Это без разбора - какая ячейка какое значение имеет... Такой парсер мне не по силам
Как то так?
Код:
[Выделить все]
Public Function GetCellFormula(Adress As Range) As String
Dim ch(1 To 2000) As String
Dim str, adr As String
Dim n, i, j As Byte
str = Adress.Formula
j = Len(str)
  For i = 1 To j
  ch(i) = Mid(str, i, 1)
   Next i
   str = ""
For i = 1 To j
adr = ""
If (Asc(ch(i)) < 91 And AscW(ch(i)) > 64) Or Asc(ch(i)) = 36 Then
adr = ch(i)
For k = i + 1 To i + 7
If k > j Then Exit For
n = Asc(ch(k))
If (n < 48 Or (n > 57 And n < 65) Or n > 90) And n <> 36 Then Exit For
adr = adr + ch(k)
Next k
ch(i) = Range(adr).Value
End If
str = str + ch(i)
If adr <> "" Then i = k - 1
Next i
GetCellFormula = str + "=" + Format(Adress.Value)
End Function
Правда работает только на простые операции в формуле.
__________________
Нерешаемых проблем не бывает.

Последний раз редактировалось KronSerg, 05.05.2010 в 17:51. Причина: Забыл про $, поправил
KronSerg вне форума  
 
Непрочитано 05.05.2010, 17:03
#11
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,853


KronSerg, я твой код не проверял, но тем не менее: как будет разобрана, например, такая формула:
Код:
[Выделить все]
=ЕСЛИ(ЕОШИБКА(ПОИСК("ОСВЕ";ПРОПИСН(Лист3!$A$1);2));ЛОЖЬ;ИНДЕКС(Dat!$A$1:$B$9;ПОИСКПОЗ(A$3;Dat!$A$1:$A$9;0);B2))
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 05.05.2010, 17:18
#12
KronSerg

Вода - моя работа
 
Регистрация: 10.11.2009
Санкт-Петербург
Сообщений: 3,639


Работает только на простые операции, с функциями решил не заморачиваться, да и твой вариант выдаст мало понятное
Код:
[Выделить все]
=IF(ISERROR(SEARCH("ОСВЕ",UPPER(Лист3!$A$1),2)),FALSE,INDEX(Dat!$A$1:$B$9,MATCH(A$3,Dat!$A$1:$A$9,0),B2))
Решил что цифры понимания происходящему не добавят
Да, признаю про $ не подумал , если надо поправлю.
__________________
Нерешаемых проблем не бывает.
KronSerg вне форума  
 
Непрочитано 05.05.2010, 17:37 Оч. просто
#13
dimak


 
Регистрация: 26.05.2009
Сообщений: 8


В ячейке А1 = 1
В ячейке B1 = *
В ячейке C1 = 1
В ячейке D1 = =
В ячейке E1 = =(A1*C1)
В ячейке F1 = =СЦЕПИТЬ(A1;B1;C1;D1;E1)
dimak вне форума  
 
Непрочитано 05.05.2010, 17:42
#14
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от dimak Посмотреть сообщение
В ячейке А1 = 1
В ячейке B1 = *
В ячейке C1 = 1
В ячейке D1 = =
В ячейке E1 = =(A1*C1)
В ячейке F1 = =СЦЕПИТЬ(A1;B1;C1;D1;E1)
Баян, однако!
 
 
Автор темы   Непрочитано 05.05.2010, 22:22
#15
Alma3

Кап.строй
 
Регистрация: 12.12.2009
Сообщений: 60


Всем огромное спасибо за ответы! =)
Буду пробовать делать!
Alma3 вне форума  
 
Непрочитано 06.05.2010, 14:38
#16
KronSerg

Вода - моя работа
 
Регистрация: 10.11.2009
Санкт-Петербург
Сообщений: 3,639


Дописал пару строк:
Код:
[Выделить все]
Public Function GetCellFormula(Adress As Range) As String
Dim ch(1 To 22000) As String
Dim str, adr As String
Dim n, i, j, k As Integer
Application.Volatile
str = Adress.Formula
j = Len(str)
  For i = 1 To j
  ch(i) = Mid(str, i, 1)
   Next i
   str = ""
For i = 1 To j
adr = ""
n = AscW(ch(i))
If (n < 91 And n > 64) Or n = 36 Or n > 191 Then
adr = ch(i)
For k = i + 1 To i + 30
If k > j Then Exit For
n = Asc(ch(k))
If (n < 48 Or (n > 58 And n < 65) Or (n > 90 And n < 97) Or (n > 122 And n < 192)) And n <> 36 And n <> 33 Then Exit For
adr = adr + ch(k)
Next k
On Error Resume Next
ch(i) = Range(adr).Value
If Err.Number <> 0 Then ch(i) = adr
Err.Clear
On Error GoTo 0
 End If
str = str + ch(i)
If adr <> "" Then i = k - 1
Next i
GetCellFormula = str + "=" + Adress.Text
End Function
теперь на тест
Код:
[Выделить все]
=ЕСЛИ(ЕОШИБКА(ПОИСК("ОСВЕ";ПРОПИСН(Лист3!$A$1);2));ЛОЖЬ;ИНДЕКС(Dat!$A$1:$B$9;ПОИСКПОЗ(A$3;Dat!$A$1:$A$9;0);B2))
получаем
Код:
[Выделить все]
=IF(ISERROR(SEARCH("ОСВЕ",UPPER(15),2)),FALSE,INDEX(45:1,MATCH(21,45:5,0),1))=ЛОЖЬ
Как сделать названия формул русскими пусть думают другие.
Да, не идеально, но нет времени дорабатывать.
__________________
Нерешаемых проблем не бывает.

Последний раз редактировалось KronSerg, 07.05.2010 в 10:26.
KronSerg вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > Формулы excel'я

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формулы в таблицах AutoCAD Krieger AutoCAD 94 04.02.2024 17:17
Корневиц Э.Ф., Эндер Г.В. Формулы для расчета балок на упругом основании Yuzer Поиск литературы, чертежей, моделей и прочих материалов 0 08.04.2010 07:52
Формулы результатов перемножения эпюр masnikolaj Поиск литературы, чертежей, моделей и прочих материалов 2 07.04.2010 20:39
ф-ла Пузыревского начальное критическое напряжение - в знаменателе формулы получается отрицательное значение. NikName Конструкции зданий и сооружений 2 25.02.2009 21:00