2013-03-27 15 views
23

24 sayfalık bir çalışma kitabına sahip olmayı planlıyorum. Sayfa adları: Ocak, Ocak öğesi, Şubat, Şubat öğesi, vb.Geçerli çalışma sayfasının adına başvuruda bulunarak başka bir çalışma sayfasındaki hücreye bakın.

Temel olarak, özet bilgileri olan sayfa adında bir ayla ve daha ayrıntılı bilgi içeren adda "öğe" olanlarla bütçeleme yapmaktır. .

='Jan item'!J3

Ancak, yerine sahip: Ben "Jan öğesi" elektronik tablodaki hücreye J3 atıfta bir hücre olması "Jan"-tabloyu istiyorsanız

Şimdi, aşağıdakileri yapabilirsiniz Ben formu kopyalayabilir,

=(reference-to-this-sheet's-name + " item")!J3

Bu şekilde: her özet sayfaya (Jan, Feb, vs) için böyle formülleri yeniden girmek için, şöyle bir şey istiyorum Jan'den Şub'a kadar ula ve otomatik olarak doğru Xxx item sayfasına bakmadan otomatik olarak Feb item yazarak zorunda kalıyorum.

Bunu sormamın nedeni, her bir özet sayfası için, karşılık gelen ürünleştirilmiş sayfadaki bir hücreye düzinelerce benzer referanslar olacaktır.

Yapmak istediğim şey bu mu? Eğer bu şekilde gitmek istiyorsanız

+0

VBA kodu kabul edildi ??? Ya da sadece formüller olmalısın? –

+0

Yalnızca formülü Ocak çalışma sayfasından kopyalayın ve sonra Şubat çalışma sayfasındaki "Jan" yerine "Feb", vb. Ile bir Bul/Değiştir'i yapın. Aksi takdirde, bir miktar VBA kullanmanız gerekir. –

+0

Daniel - Sadece formüller üzerinde plan yapıyordum - VBA ile hiçbir aşinam yok. Yine de, eğer tek çözüm buysa, onu görmek isterim. En kötü durum, David'in çözümü ile gideceğim - ki şimdi okuduğumda bariz görünüyor. . . utanç verici bir şekilde, "Göremiyorum, göz seviyesinde!" anlar. –

cevap

31

Hala indirekt kullanıyor. A1 hücrenizin, başvurulan sayfanın (Jan) adını içeren değişkeniniz olduğunu varsayalım. Eğer giderseniz :

=INDIRECT(CONCATENATE("'",A1," Item'", "!J3"))

Sonra 'Jan Öğe' J3 değere sahip olacaktır. İşte

+6

Bunu çok etkili kullandım. Birleştirme için '&' kullanarak okumayı daha kolay buldum. Bu sizin örnekleminizi 'INDIRECT ("'" & A1 & "Item '! J3") yapar. – corsiKa

12

Sekme adını atlatmanın VBA yoluna devam etmesini istemiyorsanız, Excel formülü vb Orta fonksiyonları, dayalı oldukça çirkin Ama her ikisi de bu yöntemler here bulunabilir.

Aksine, ben bunu yapacağını yoludur:

1) örneğin, Reference_Sheet adını sayfanızdaki bir hücre, yapın ve örneğin "Jan Öğe" O hücrede değer koydu.

=INDIRECT(Reference_Sheet&"!J3") 

3) Şimdi, her ayın levha için, yalnızca söz konusu Reference_Sheet hücreyi değiştirmek zorunda: Artık

2), gibi Indirect işlevini kullanın.

Umut, bu size ne aradığınızı verir!

+0

Kutsal crap, MID, vb. Yöntem Çirkin! Muhtemelen sizinkini veya David'in çözümünü kullanacağım. Teşekkürler! –

+0

Bu satır bana bir VALUE hatası veriyor. Bir fikrin neden? "Reference_Sheet" içindeki "J3" hücresindeki metin yalnızca bir kelimedir ve herhangi bir uyumsuzluğu beklemezdim ... –

+1

"Reference_Sheet" hücrenizdeki veriler yalnızca bir sözcükse, çalışmalıdır. .. Örnek sayfamda yaptı ... Sadece güvenli tarafta olmak için, Muhtemelen formülü bu = = INDIRECT ("'" & TRIM (Reference_Sheet) & "" J3 ")' e çevirmeyi deneyin. Bu, 'Reference_Sheet' hücrenizin bozulabilen bazı karakterlere sahip olması olasılığını ve bu hücrenin içinde 1'den fazla kelimeye sahip olması olasılığını hesaba katacak ... Çözümü çözdüyse bana bildirin .... –

0

Ben Fernando olarak benzer şekilde aylık sayfa gerçekleştirme şekli:

  1. Ayın her sayfa numarasını elle yazıp ThisMonth olarak o yer adını verdi. Bunu, sayfanın kopyalarını önce yapabildiğinizi unutmayın. Excel'i kopyaladıktan sonra aynı ismi kullanmanıza izin verilmez, ancak sayfa kopyası ile hala çalışır. Bu çözüm isimlendirmeden de çalışır.
  2. Ay içinde C12 konumuna hafta sayısı ekledim. Adlandırma da iyi.
  3. Her sayfada beş hafta yapılan ve beşinci haftasında Bu ay sadece dört hafta var ise beşinci hafta boşaltır işlevi

    =IF(C12=5,DATE(YEAR(B48),MONTH(B48),DAY(B48)+7),"") 
    

    yaptı. C12 hafta sayısını tutar.

  4. ...
  5. Yıllık Excel oluşturdum, bu yüzden içinde 12 sayfa vardı: her ay için bir tane. Bu örnekte, sayfanın adı "Ay" dır. Bu çözümlerin tüm boşlukları "_" karakterleri olarak değiştirmeniz gerekmediği için ODS dosya standardıyla da çalıştığını unutmayın.
  6. İlk "Ay" sayfasını "Ay (1)" olarak yeniden adlandırdım, böylece aynı adlandırma ilkesini izler. İsterseniz "Aylık 1" olarak da adlandırabilirsiniz, ancak "Ocak" biraz daha fazla çalışma gerektirecektir.
  7. takın ilk gün alan başlangıç ​​levha 2. üzerine fonksiyonu aşağıdaki: Başka bir kelimeyle Yani

    =INDIRECT(CONCATENATE("'Month (",ThisMonth-1,")'!B15"))+INDIRECT(CONCATENATE("'Month (",ThisMonth-1,")'!C12"))*7 
    

    , önceki sayfaya dört veya beş hafta kaplıyorsa, bu doğru tarihini hesaplar ve doğru tarihinden itibaren devam .

İlgili konular