2016-04-04 27 views
0

başka bir sütundan dize değerleri karşılaştırarak hesaplanan bir sütun nasıl oluşturulabilir Birisi aşağıda açıklandığı gibi hesaplanan bir sütun oluşturmak için bana yardımcı olabilir misiniz? Tibco spot yangın

Ben col1 ve col2 'başarısız', başka bir grup için col3 üzerinde en az bir 'C' ortaya çıkması durumunda, 'başarı' diyen bir hesaplanan sütun ihtiyaç masayı

 
col1 | col2 | col3 
    1 | x | ER 
    1 | x | IG 
    1 | x | C 
    1 | y | ER 
    1 | y | ER 
    2 | y | IG 
    2 | y | C 
    2 | y | ER 
    2 | z | ER 
    2 | z | IG 

düşünün. olduğunu

 
col1 | col2 | col3 | calculated_col 
    1 | x | ER | success 
    1 | x | IG | success 
    1 | x | C | success 
    1 | y | ER | fail 
    1 | y | ER | fail 
    2 | y | IG | success 
    2 | y | C | success 
    2 | y | ER | success 
    2 | z | ER | fail 
    2 | z | IG | fail 

: gibi

yüzden benim yeni tablo bakmak gerekir

    1 kombinasyonu için
  1. ve 'x' col1 ve col2 sırasıyla leat bir 'c' de oradan col3'te, ifade ifadesi '1' ve 'y' kombinasyonları için col1 ve col2'den itibaren 'başarı'
  2. , yani col3'te 'c' yoktur, bu nedenle ifade sonucu 'fail'
  3. col1 ve col2 'den 2 ve' y 'kombinasyonu sırasıyla, col3'te en az bir' c 'olur; bu nedenle ifade sonucu, 2 ve' z 'sırasıyla col1 ve col2' den elde edilebilmesi için 'başarı'
  4. olur. col3 de, sentezleme sonucu hiçbir 'c'

cevap

0

Eğer tanımlayan bir hiyerarşi (bu durumda, col1> col2) 'e uygun hücrelerde değerleri elde etmek üzere fonksiyon en Intersect kullanabilir 'başarısız'.

şu ifadesi istediğiniz sonuçları üretir:

If(
    Find("C", UniqueConcatenate([col3]) OVER (Intersect([col1], [col2]))) > 0, 
    "success","fail" 
) 

bununla birlikte, özellikle sağlam değil: Eğer col3 başka değerler varsa için "başarı" "C", bu ifade değerlendirecek içerdiğini!

+0

Çok teşekkür ederim, mükemmel çalıştı. –

İlgili konular