Şablona dayalı olarak elektronik tabloya ek sütunlar ekleme


1

Mevcut bir elektronik tabloya önceden tanımlanmış bazı analiz / değerlendirme hücreleri eklemenin bir yolu var mı?

Kullanım durumum, bir veritabanından çalışan verilerini içeren bir MS Excel dosyası oluşturan bir uygulamadır. Bu verileri uygulama içinden mümkün olmayan şekilde değerlendirmemiz gerekiyor, bu nedenle Excel'de formül içeren bazı sütunlar ekledik.

Bu değerlendirme hücrelerini şablon olarak kaydetmenin ve yeni oluşturulan bir dosyaya uygulamanın iyi bir yolu var mı?

Uygulamadan oluşturulan örnek dosya / tablo:

+-------------+
| ColA | ColB |
+-------------+
|  foo | baz  |
|  bar | baz  |
|  foo |      |
|  bar |      |
+-------------+

Otomatik olarak eklenmesi gereken ek formüllerle (şu anda formülleri eski bir dosyaya eklemek için kopyala / yapıştır kullanıyorum)

+-----------------------------+
| ColA | ColB | Eval1 | Eval2 |
+-----------------------------+
|  foo | baz  |   1   |   1   |
|  bar | baz  |   0   |   1   |
|  foo |      |   1   |   0   |
|  bar |      |   0   |   0   |
+-----------------------------+

Açıklığa kavuşturmak için düzenleyin: Açık bir formül istemiyorum, ancak formüllerle isteğe bağlı sütunların nasıl ekleneceği hakkında daha genel bir yol. Excel'de çok yeniyim (ve şu ana kadar VBA'ya dokunmadım), bu yüzden bunun mümkün olup olmadığını ve ne kadar işin dahil olduğunu bilmiyorum.

Bu soru herhangi bir hesaplama ile ilgili değil, yeni oluşturulan özel önceden tanımlanmış formülleri ekleme işlemi hakkında daha fazla .xlsx Dosyalar. Örneğimdeki önceki ve sonraki tablolar yalnızca sütunların nereye eklenmesi gerektiğini göstermek içindir, ancak herhangi bir anlam taşıyamazlar.

Açık sorunum için daima sütun içeren bir dosya alıyorum Month, Employee ve WorkHours. Daha sonra, genellikle el ile yaptığım ve tüm satırlar için onları aşağı sürükleyeceğim, yüzdelere sahip sütunlar eklenmeli. Bu karmaşık bir iş değildir, ancak formülleri bir yerden bir dosyadan manuel olarak kopyalamalarını istemeden iş arkadaşlarımın erişebilmesini sağlamak için bir yola ihtiyacım var.

+-----------------------------------------------------------+
|Month    Employee   WorkHours    25%    50%    75%    100% |
|01.2016  PersonA       149,25    FormA  FormB  FormC  FormD|
|01.2016  PersonB        79,00    FormA  FormB  FormC  FormD|
+-----------------------------------------------------------+

Formüller aşağıdaki gibidir:

FormA: =IF(AND(C2>0;C2<=40);0,25;"")
FormB: =IF(AND(C2>40;C2<=80);0,5;"")
FormC: =IF(AND(C2>80;C2<=120);0,75;"")
FormD: =IF(C2>120;1;"")

Soru biraz belirsiz. Bir öncesi ve sonrası gösterirsiniz, ancak sonrasının nereden geldiği veya değerlerin önceki verilerle nasıl ilişkili olduğu belli değildir. Birisinin buna nasıl faydalı bir şekilde cevap verebileceğinden emin değilim. Ayrıntılı ve daha açık konuşabilir misiniz?
fixer1234

Biraz açıklama ekledim, umarım şimdi daha iyi olur. Başka bir sorunuz veya cevabını nasıl geliştirebileceğime dair bir fikriniz varsa, bana bildirin. Teşekkürler!
Slizzered

Bunu fazla düşünmüş olabilirsin. Nike sloganı gibi, "Sadece yap." Excel'de dosyayı açtığınızda, istediğiniz yeri, istediğiniz yere ekleyebilirsiniz. Örneğin, belirli bir hesaplama içeren bir sütun eklemek istiyorsanız, formülü istediğiniz ilk hücreye yapıştırın ve sütunu doldurmak için kopyalayın veya aşağı sürükleyin. Belki ne yapmak isteyebileceğinize dair bir örnek düşünürseniz, insanlar bunun nasıl gerçekleştirileceğine dair bir lezzet sağlayabilir.
fixer1234

1
Ben zaten "sadece yap" yolunu yaptım ve her şey yolunda. Ancak iş arkadaşlarım her ay yeni oluşturulan bir dosyayla süreci tekrarlamak zorunda. Sütunların manuel olarak nasıl ekleneceğini ve işlem sırasında 2-3 gün harcanmasını öğrenmek yerine, tüm hesaplamaları el ile yapmayı tercih ederler. Bu nedenle iş akışlarını iyileştirmenin bir yolunu arıyordum. Durumu daha net göstermek için bazı gerçek veriler ekleyeceğim.
Slizzered

1
Görevi anlıyorum ama ne tür bir girdi aradığınızı hala bilmiyorsunuz. Aldığım izlenim, biraz bilgisayar deneyimi (veya en azından Excel deneyimi) olan bazı iş arkadaşlarınız olduğu ve bu işte uzman olmak için neye ihtiyaç duyulacağını öğrenmek konusunda isteksiz oldukları. Öyleyse, buradaki insanların yardımcı olmak için çok şey yapabileceği bir şey değil. Bunu otomatikleştirmek için bazı makrolar oluşturmak, ya da birileri (siz?), Teknik kısmı yapmak ya da biraz eğitim almak, vb.
fixer1234

Yanıtlar:


2

Elbette çoğu etkinliği otomatikleştirmek için VBA rutin (ler) ini kullanabilirsiniz. bu elle yapılabilir (ve objektif olarak tanımlanabilir). Birkaç geniş yaklaşım akla geliyor:

  • Mevcut bir şablon dosyasına sahip olma yaklaşımınızı geliştirin önceden tanımlanmış formüllerle. Şu anda yaptığınız işlemi otomatikleştirmek için bu dosyaya VBA ekleyin: Formülleri şablondan oluşturulan dosyaya kopyalayın. Bu daha iyi (daha kolay) yaklaşım olabilir, özellikle de analiz / değerlendirme formüllerini değiştirmeyi düşünüyorsanız - ve özellikle İş arkadaşlarınızın şablonu değiştirmesine izin vermeniz gerekiyorsa.
  • İçeren yeni bir Excel dosyası oluşturun sadece VBA. İstenen Excel çalışma sayfası formüllerini veri olarak VBA'ya gömün. Bu eylemi otomatikleştirmek olacaktır yazarak formülleri yeni sayfa içine. Bu yaklaşım, formülleri mevcut verilere göre uyarlamayı kolaylaştırabilir.

Tabii ki, ya / veya; Yukarıdaki hususları birleştiren karma bir çözüm geliştirebilirsiniz.

Görmelisin VBA'yı MS Office'e nasıl eklerim? genel bilgi için. Bu, şeridin üzerindeki “Geliştirici” sekmesinin nasıl etkinleştirileceğini açıklar. VBA’yı bilmiyorsanız, başlamak için iyi bir yol “Geliştirici” sekmesindeki “Makro Kaydet” e tıklamaktır. Bir isim seçin ve “Tamam” ı tıklayın. kaydetmek / otomatikleştirmek istediğiniz eylemleri gözden geçirin, ve ardından “Kaydı Durdur” a tıklayın (“Makro Kaydet” ile aynı düğme). On ya da yirmi yıl önce hatırlıyor gibiyim, makrolar kaydedilmiş ve tuş vuruşlarının dizileri / komut dosyaları olarak depolanmıştır; şimdi eşdeğer VBA'ya çevriliyorlar.

Büyük olasılıkla kurşun geçirmez hale getirmek için kodu düzenlemek isteyeceksiniz. Size VBA öğretmek bu sitenin kapsamı dışındadır, ancak bana dinamik olarak çalışma sayfasını “bulmak” isteyeceksiniz konserve formülleri koymak istediğiniz yere. İşte bunu yapmak için bir yaklaşım:

Set curw = ActiveWindow
Set curs = ActiveSheet
For Each w In Windows
    w.Activate
    For Each s In Sheets
        s.Activate
        If Range("A1") = "Month" And Range("B1") = "Employee" _
                                 And Range("C1") = "WorkHours" Then
            ' This is the sheet where I want to put the analysis/evaluation formulas.
            If Range("D1") = "" And Range("E1") = "" And Range("F1") = "" _
                                And Range("G1") = "" Then
                ' Put the formulas here.
            Else
                MsgBox "There’s already something here!"
            End If
        End If
    Next s
Next w
curw.Activate
curs.Activate

Bu siteyi ve diğer kaynakları ararsanız, Ne kadar verinin belirleneceğine dair birçok örnek bulacaksınız. zaten hedef sayfada (bu nedenle yeni sütunlarınızı eşleşecek şekilde uzatabilirsiniz).

İş arkadaşlarınıza şablon dosyasını açmasını söyleyebilirsiniz. ve formülleri yüklemek için makroyu çalıştırmak için bir makroyu çalıştırın. Onları menülerde gezinmek için ihtiyacı olan zahmetten kurtarmak için bir düğme oluşturabilirsiniz. Ayrıca bakınız Office 2007 için VBA Makroları nasıl saklanır onları her zaman erişilebilir kılmak ve başkalarıyla paylaşmak için? Makroyu iş arkadaşlarınız için nasıl erişilebilir hale getirebileceğinize ilişkin bilgi için şablon dosyasını açmaya bile gerek kalmadan.


Bu çok eksiksiz bir cevaptı, teşekkürler. İstenen işlevsellik için bir Şerit / Menü girişi olacak şekilde bir VBA Eklentisi yazdım.
Slizzered
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.