|
|
|
Функция СЦЕПИТЬ для диапазона данных.
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. У меня возникла острая необходимость создать пользовательскую функцию СЦЕПИТЬ для диапазона данных. (не =СЦЕПИТЬ(A1;A2;A3;A4), а просто =СЦЕПИТЬДП(A1:A4) (СЦЕПИТЬДП-я ее так назвал). И вот что у меня получилось. Function СЦЕПИТЬДП(rng As Range) As Variant total = "" Dim cell As Range For Each cell In rng total = total & cell Next cell СЦЕПИТЬДП = total End Function Она прекрасно работает, так что кому этого достаточно могут её использовать. Мне же необходимо, чтобы она могла работать и с массивами. Как это, скажем, делает функция СУММ Пример: 1 20 2 10 3 15 4 10 5 20 {=СУММ((B2:B6=10)*A2:A6)} дает ответ 6, а моя функция должна давать ответ 24. Если кто-нибудь знает как это сделать, пожалуйста подскажите. Премного благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2007, 14:53:01 |
|
||
|
Функция СЦЕПИТЬ для диапазона данных.
|
|||
|---|---|---|---|
|
#18+
Function СЦУММ(rng As Range, priznak As String) As Variant Dim total As Variant total = "" Dim cell As Range For Each cell In rng If cell.Value = priznak Then total = total & cell.Offset(0, -1).Value End If Next cell СЦУММ = total End Function ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2007, 17:53:30 |
|
||
|
Функция СЦЕПИТЬ для диапазона данных.
|
|||
|---|---|---|---|
|
#18+
Большое спасибо, очень помогли. Ввел переменную offset и получил универсальную и такую необходимую функцию. Ещё раз Большое спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2007, 18:37:33 |
|
||
|
Функция СЦЕПИТЬ для диапазона данных.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. для простых операций с диапазонами и константами массива, ввод обычный - ENTER =СЦЕПИТЬ_МАССИВ(A1:A3;"") =СЦЕПИТЬ_МАССИВ(A1:C1;"") =СЦЕПИТЬ_МАССИВ(A1:C3;"") =СЦЕПИТЬ_МАССИВ({"a";2;"c"};"") =СЦЕПИТЬ_МАССИВ({"a":"d":"g"};"") =СЦЕПИТЬ_МАССИВ({"a";2;"c":"d";3;"f":"g";4;"i"};"") и т.д. для сложных операций с диапазонами, ввод матричный - CTRL+SHIFT+ENTER =СЦЕПИТЬ_МАССИВ(A1:A3+5;"") =СЦЕПИТЬ_МАССИВ(A1:C1+5;"") =СЦЕПИТЬ_МАССИВ(A1:C3+5;"") =СЦЕПИТЬ_МАССИВ(A1:A3*A1:A3;"") =СЦЕПИТЬ_МАССИВ(A1:C1*A1:C1;"") =СЦЕПИТЬ_МАССИВ(A1:C3*A1:C3;"") =СЦЕПИТЬ_МАССИВ(A1:A3&"x";"") =СЦЕПИТЬ_МАССИВ(A1:C1&"x";"") =СЦЕПИТЬ_МАССИВ(A1:C3&"x";"") и т.д. KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2007, 19:40:24 |
|
||
|
Функция СЦЕПИТЬ для диапазона данных.
|
|||
|---|---|---|---|
|
#18+
Поправка к коду функции: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2007, 19:58:07 |
|
||
|
|

start [/forum/topic.php?fid=61&gotonew=1&tid=2182398]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
11ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 411ms |

| 0 / 0 |
