excel makro hücre doldurulursa formülü uygula


0

İşte benim excel problemim. 3 tane sekmem var, 1. tanesi şimdi ve sonra güncellenen veriye sahip ve satır sayısını değiştiriyor. sekme 2, belirli bilgileri sekme 1'den kesmek için kullanılan bir formüle sahiptir. sekme sonuçları göstermek için sekme 2'deki verileri kullanan bir pivot tabloya sahiptir.

Sorun, sekme 2'deki formülün sekme l'de beslenen tüm verileri kapsayacağından emin olmak için el ile satır 500'e kopyalanmasıdır. Böylece, pivotta yanlış toplam sayıların yanı sıra, sonuçlardan kaynaklanan boşlukları da içerecek şekilde sonuçlanır. sekme 2.

Bu nedenle, aşağıdakileri yapması gereken bir makro çözümüne ihtiyacım var: 1. Sekme 1'de doldurulan satır sayısını sayın 2. Sekme 1'deki satır sayısına ulaşana kadar sürekli olarak her satır için gerekli formülü uygulayın, sekmeyi her satırda değiştirin 2 sekme 1'deki her satıra uygun şekilde karşılık gelecek şekilde.

Örneğin, sekme 1'deki 100 satırı besleyin, sekme 1'deki her satır için doğru satırlarla sekme 1'deki her satıra karşılık gelen 100 formül uygulayın (aynı satırdaki formülü kopyalayın).

Bu, Pivot’a boşluklar eklenmemesiyle sorunumu çözecektir, bu nedenle toplam sayı daima sekme 1 toplamına eşittir.

PS Pivot'u boşlukları, 0'ları, hataları vb. Görmezden gelmesini sağlamaya çalıştım, ancak hala formülü kopyaladığım tüm satırları sayar, ne çektiğini yok. Yani bu benim için çalışmıyor.

Yardımlarınız çok takdir edilmektedir.


1
Şimdiye kadar ne denedin? Bu bir betik yazma servisi değil. Lütfen neyi denediğinizi ve belirli sorularla nerede takıldığınızı ortaya çıkarın, sonra birileri size yardım edebilir
Eric F

Ne yazık ki sadece hazırlanmış makroları kullanıyorum, nasıl yazacağımı bilmiyorum, fakat tam olarak ihtiyacım olan şey hakkında bir fikrim var. Ayrıca hazır makroları değiştirerek eşleşmelerini sağlayabilirim, ancak şu ana kadar hiçbir şeyim yok.
Borislav

Aslında sorunuza bakarken, bu makro olmadan elde edilebilir. Neden sadece sekme 2'ye bir formül yazmıyorsunuz ki, eğer = if (A2 = "", "", kodunuz), verilerin altında durur
Eric F

Aksi takdirde, VBA'da Aralık ("'Sayfa1'! A1"). Formül = "SUM (A2: A3)", belirli hücrelere formül atadığınız yoldur. (Tabii ki toplam yerine kendi formülünüzü koyun ve sayfa adını ve aralığını kendi değerinize göre değiştirin) Bunu deneyin ve size genel bir VBA rehberi vermek için burada superuser.com/questions/1274128/… adresindeki cevabımı inceleyin
Eric F

Cevap için teşekkürler. Bu yüzden tam olarak bu sözdizimini kullanıyorum, sorun şu ki, sonuç "" olduğunda, aslında, pivot tarafından toplanan boş bir hücre bırakır. Bu nedenle, tab1'de 100 satırınız varsa ve tab2'deki bu formülü 200 sıraya kadar manuel olarak kopyalarsanız, pivot basitçe bunları bir kayıt olarak sayar, çünkü bir formül vardır ve pivottaki toplam gerçek değil 100 satır.
VBA'yı

Yanıtlar:


-1

OP’yi aldıktan sonra öğrendiklerim, sadece İKİ meseleleriniz olduğunu.

  1. Doldurulmuş satırları saymak Tab1'dir.

  2. Tab2'deki her doldurulmuş satır için Formülü Yaz ve Çalıştır.

Bunun için size VBA'ya ihtiyacı olmayan tüm süreci göstermek istiyorum.

Daha iyi anlaşılması için Daha Küçük Veri Aralığı aldım.

görüntü tanımını buraya girin

İlk görev Boş Olmayan Satırları Saymaktır . Bunun için herhangi bir formül kullanabilirsiniz.

= COUNTA (A8: B12)

= (SATIR (A8: A12) + SATIR (B8: B12)) - COUNTIF (A8: B12, "")

= SATIRLAR (A8: B12) * KOLONLAR (A8: B12) -TOPARAN (A8: B12)

Not: Alacağınız Satır Sayısı 7'dir . Aslında her formül Veri Aralığı için Boş Olmayan Hücreler sayıyor.

Yazarsan

= CountA (A1: A8) 4 alırsınız .

Uygun olanı seçin, ilk seti tercih ederdim , nedeni basit. TAB2'yi Formül ile doldurmanız gerektiğinden. Formülün Veri Alanındaki Değerlere ihtiyacı vardır, bu yüzden teknik olarak Satırlar boş hücrelere sahiptir, alıştırmadan ayrılmalıdır.

Şimdi 2. görev, Tab2'ye formül yaz.

= IF (VE (Sayfa1! A8, Sayfa1! B8 <> ""), Sayfa1! A8 + Sayfa1! B8, "Satırda Veri Yok")

Formülü gerekli olana kadar sürükleyin.

Unutma ki bu örnek bir formül, yerine seninkiyle değiştir.

Umarım, çözüm sorunu çözüyor. Farklıysa yorum bırak.


Geri bildiriminiz için teşekkürler. Mantıklı gelse de çözmeye çalıştığım son kısım var. Dediğiniz gibi, "Formülü gerektiği kadar sürükleyin". Ve burası sayımın makro olarak girmesi ve formülü sayımın söylediği gibi otomatik olarak doldurması gereken yer. Örneğin, başka bir sekmede veya! C3'te uygulanacak formüle ihtiyaç duyduğum için, tam olarak gerektiği kadar - 4
Borislav
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.