Вы слишком усложняете процесс здесь? Я думаю, что вы можете просто использовать xsl:for-each-group
, чтобы получить нужные вам значения, без необходимости создавать строку, а затем разбивать ее.
<xsl:for-each-group select="Screening" group-by="@type">
<xsl:for-each-group select="current-group()" group-by="string(@subtype)">
<xsl:value-of select="concat('Processing ', @type, ' - ', @subtype, ' ')" />
</xsl:for-each-group>
</xsl:for-each-group>
Обратите внимание, что, если вы действительно хотите создать строку с разделителем в виде трубы, вы бы сделали это ...
<xsl:variable name="distinct" select="string-join(distinct-values(Screening/concat(@type, '-', @subtype)), '|')" />
Обширные руководящие указания и обзоры «технического руководства», «проектного руководства» и / или QA.
Сделайте руководящие принципы «динамическими» и поддерживайте их точность и актуальность, в нашей компании мы используем Wiki для таких задач совместной работы.
$ B ).Примечание:
Для более новых версий Excel с лентой перейдите на ленту Формулы -> Определить имя. Это то же самое после этого. Кроме того, чтобы использовать свое имя, вы можете выполнить «Использовать в формуле» прямо в разделе «Определить имя» при редактировании формулы или начать вводить ее, и Excel предложит имя (кредиты: Michael Rusch)
Сокращенные шаги: 1. Щелкните правой кнопкой мыши ячейку и выберите Определить имя ... 2. Введите имя и формулу, которую вы хотите связать с этим именем / локальной переменной 3. Используйте переменную (credits: Jens Bodal)
A function can be in-lined into a SQL statement, e.g.
select foo
,fn_bar (foo)
from foobar
Which cannot be done with a stored procedure. The architecture of the query optimiser limits what can be done with functions in this context, requiring that they are pure (i.e. the same inputs always produce the same output). This restricts what can be done in the function, but allows it to be used in-line in the query if it is defined to be "pure".
Otherwise, a function (not necessarily deterministic) can return a variable or a result set. In the case of a function returning a result set, you can join it against some other selection in a query. However, you cannot use a non-deterministic function like this in a correlated subquery as the optimiser cannot predict what sort of result set will be returned (this is computationally intractable, like the halting problem).
способ определения переменной в строке формул Excel. В качестве обходного пути вы можете поместить функцию в другую ячейку (по желанию, скрыть содержимое или поместить его на отдельный лист). В противном случае вы можете создать функцию VBA .Да. Но не напрямую.
Более простой способ
ИЛИ
Вы можете сохранить промежуточные значения в ячейка или столбец (который можно скрыть, если вы выберете)
C1: = VLOOKUP(A1, B:B, 1, 0)
D1: = IF(C1 > 10, C1 - 10, C1)
Два варианта:
VLOOKUP
функционирует в своей собственной ячейке: = VLOOKUP (A1, B: B, 1, 0)
(скажем, C1 ), затем формула со ссылкой на C1: = IF (C1> 10, C1 - 10, C1)
Function MyFunc(a1, a2, a3, a4)
Dim v as Variant
v = Application.WorksheetFunction.VLookup(a1, a2, a3, a4)
If v > 10 Then
MyFunc = v - 10
Else
MyFunc = v
End If
End Function