2016-03-29 16 views
1

POI 3.12 farklı bir sayfaya bir VLOOKUP ekleyebilir mi? aşağıdaki gibi I (bu formül Excel'de çalışır) bir formül olduğunu varsayalım: Başka bir kağıda bir kullanım da Sepetler yaprağından bir değer elde etmek için kullanmaya çalışıyorumPOI 3.12 VLOOKUP hatası: Belirtilen aralık 'diğer sayfa adı' geçerli çalışma kitabında mevcut değil

VLOOKUP(N6,Baskets,14,0) 

.

Bu hatayı veriyor:

org.apache.poi.ss.formula.FormulaParseException: Specified named range 'Baskets' does not exist in the current workbook. 

bu konuda web'de arama ben gerçekten bir cevap bulamadım. The POI API for VLOOKUP, yalnızca geçerli sayfalarda belirtilen aralıklarda kullanılmak için kullanılabileceğini önerdi. Ancak, muhtemelen tablo_dizisinin argüman ismine anlam katıyordum. Bunun için belgeler için bulduğum her şey. Cevap burada bulunduktan sonra

dizi argümanı birden fazla sütunu olması gerekiyor Libre Office documentation göre benim karışıklık kaynağıdır. İlk sütun, arama ölçütünü içermeli ve diğer sütunlar dizin argümanı olarak kullanılan sütunu içermelidir. Son olarak, dizin argümanı, çalışma kitabının sütun dizinlerini değil dizi argümanına göredir.

+0

Geçerli bir başka sayfa referansı denediniz mi, ör. Sepetler! A1: D4', hücre aralığına bağlı olarak bir arama yapmak ister misiniz? – rgettman

+0

Evet, aklıma gelen her çeşitliliği denedim. Deneyebileceğiniz birçok farklı sözdizimi var ve belki hepsini denemedim. Bunu yaptıysanız lütfen bana çalışılan sözdizimini gösterin ve deneyeceğim. – superbAfterSemperPhi

+1

Şu anda 3,14 olan Apache POI'nin en son sürümüne yükselttiğinizde ne olur? – Gagravarr

cevap

2

Size bir örnek çalışmam var. Farklı levha veri mevcut sayfaya benim verilerini eşittir wheter

formulaCell.setCellFormula("IF(ISERROR(VLOOKUP('" + Baskets + "'!$A$4:$A$360,'" + processName + "'!$A$2:$B$80,2,FALSE)),\"\",VLOOKUP('" + Baskets + "'!$A$4:$A$360,'" + processName + "'!$A$2:$B$80,2,FALSE))"); 

Ben öğrenmek için VLOOKUP kullanabilirsiniz.

processName yalnızca verilerimi karşılaştırmak için bir String'dir.

Sorunum, diğer sayfada !$A$4:$A$360"" ve '' VLOOKUP ifadesinin çevresinde belirtilen aralıktı.

+0

harika, bu örneği uygulamaya çalışacağım. – superbAfterSemperPhi

+0

Teşekkürler, işe yaradı. – superbAfterSemperPhi

İlgili konular