Önceden Gelir ve Bağımlılar

Giriş

  • Öncül hücreler, başka bir Hücredeki bir formül tarafından başvurulan hücrelerdir. Örneğin, eğer D10 hücresi =B5 formülünü içeriyorsa, B5 hücresi D10 hücresinin öncül hücresidir.
  • Bağımlı hücreler, diğer hücrelere atıfta bulunan formülleri içerir. Örneğin, eğer D10 hücresi =B5 formülünü içeriyorsa, D10 hücresi B5 hücresine bağımlıdır.

Elektronik tabloyu okunabilir hale getirmek için belki de bir formülde kullanılan hangi hücreleri açıkça göstermek istersiniz. Benzer şekilde, diğer hücrelerin bağımlı hücrelerini çıkarmak isteyebilirsiniz.

Aspose.Cells for Python via .NET, hücrelerin bağlantılarını bulmak ve izlemek için olanak sağlar.

Öncekileri ve Bağımlı Hücreleri İzleme: Microsoft Excel

Formüller, müşteri tarafından yapılan değişikliklere bağlı olarak değişebilirler. Örneğin, C3 ve C4 hücrelerinde bir formül içeren ve C1’in C3 ve C4’e bağımlı olduğu durumu düşünelim (bu durumda formül geçersiz kılınmış olur), diğer hücrelerin iş kurallarına göre tabloyu dengelemek için değişmesi gerekebilir.

Benzer şekilde, C1 hücresi ‘=(B122)/(M2N32)’ formülünü içeriyorsa, C1’in bağımlı olduğu hücreleri, yani precedent hücreleri (B1, M2 ve N32), bulmak istiyorum.

Belirli bir hücrenin bağımlılığını başka hücrelere izlemek isteyebilirsiniz. İş kuralları formüllerde gömülüyse, bağımlılığı bulmak ve buna göre bazı kuralları uygulamak isteriz. Benzer şekilde, belirli bir hücrenin değeri değiştirilirse, çalışma sayfasındaki hangi hücrelerin bu değişimden etkilendiğini bilmek isteriz.

Microsoft Excel, öncekileri ve bağımlıları izlemek için kullanıcılara olanak sağlar.

  1. Görünüm Araç Çubuğu‘nda Formül Denetimi‘ni seçin. Formül Denetimi iletişim kutusu görüntülenecektir.
  2. Önceden Gelenleri İzleme:
    1. Önceden gelen hücreleri bulmak istediğiniz formül içeren hücreyi seçin.
    2. Doğrudan veri sağlayan her hücreye izleyici okunu göstermek için Formül Denetimi araç çubuğunda Önceden Gelenleri İzle‘yi tıklatın.
  3. Belirli bir hücreyi referans olarak alan formülleri izle (bağımlılar)
    1. Bağımlı hücreleri belirlemek istediğiniz hücreyi seçin.
    2. Aktif hücreye bağımlı olan her hücreye izleyici okunu göstermek için Formül Denetimi araç çubuğunda Bağımlıları İzle‘yi tıklatın.

İlgi Hücreleri ve Bağımlı Hücreleri Takip Etmek: Aspose.Cells for Python via .NET

Öncüleri İzleme

Aspose.Cells for Python via .NET, bağlı hücreleri bulmayı kolaylaştırır. Veri sağlayan basit formül öncüllerine ve aynı zamanda adlandırılmış alanlar içeren karmaşık formüllerin öncüllerine veri sağlayan hücreleri de bulabilir.

Aşağıdaki örnekte, bir şablon excel dosyası olan Book1.xls kullanılmıştır. Elektronik tabloda veri ve formüller bulunmaktadır.

Aspose.Cells for Python via .NET Cell sınıfının get_precedents metodunu kullanarak bir hücrenin öncüllerini izleyebilirsiniz. Bu metod bir ReferredAreaCollection döner. Yukarıda görüldüğü gibi, Book1.xls dosyasında, B7 hücresinde “=SUM(A1:A3)” formülü bulunur. Bu nedenle, A1:A3 hücreleri B7 hücresinin öncülleridir. Aşağıdaki örnek, şablon dosyası Book1.xls kullanılarak öncüleri izleme özelliğinin gösterimini sağlar.

from aspose.cells import CellsHelper, Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
workbook = Workbook(dataDir + "Book1.xlsx")
cells = workbook.worksheets[0].cells
cell = cells.get("B4")
ret = cell.get_precedents()
area = ret[0]
print(area.sheet_name)
print(CellsHelper.cell_index_to_name(area.start_row, area.start_column))
print(CellsHelper.cell_index_to_name(area.end_row, area.end_column))

Bağımlıları İzleme

Aspose.Cells for Python via .NET, size çalışma sayfalarındaki bağlı hücreleri bulma imkanı sağlar. Bu API, yalnızca basit formülleri sağlayan hücreleri değil, aynı zamanda adlandırılmış alanlar içeren karmaşık formüllerin bağlı hücrelerini de bulabilir.

Aspose.Cells for Python via .NET, bir hücrenin bağımlılarını izlemek için kullanılan Cell sınıfının get_dependents metodunu sağlar. Örneğin, Book1.xlsx dosyasında “=A1+20” ve “=A1+30” formülleri sırasıyla B2 ve C2 hücrelerinde bulunur. Bu örnek, A1 hücresinin bağımlılarını izleme yöntemini gösterir.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
workbook = Workbook(dataDir + "Book1.xlsx")
cells = workbook.worksheets[0].cells
cell = cells.get("B2")
ret = cell.get_dependents(True)
for c in cell.get_dependents(True):
print(c.name)

Hesaplama zincirine göre precedent ve bağımlı hücreleri izleme

Yukarıdaki izleme öncülleri ve bağımlıları API’leri, formül ifadesine göre sıralanmıştır. Kullanıcılar, sadece birkaç formül için ileri ve geri bağımlılıkları izlemek amacıyla kolaylık sağlar. Çalışma kitabında çok sayıda formül varsa ve her hücre için bağımlılıkları izlemek gerekirse, bu yöntemler kötü performans gösterebilir. Bu durumda, kullanıcılar get_precedents_in_calculation ve get_dependents_in_calculation metodlarını kullanmayı düşünmelidir. Bu iki metod, bağımlılıkları hesaplama zinciri boyunca izler. Bu yüzden, öncelikle Workbook.settings.formula_settings.enable_calculation_chain metoduyla hesaplama zincirini etkinleştirmeniz ve ardından Workbook.calculate_formula() ile çalışma kitabını tam hesaplamaya almanız gerekir. Ardından, tüm hücreler için öncüller veya bağımlıları izleyebilirsiniz.

Bazı formüller için, GetPrecedents ve GetPrecedentsInCalculation, GetDependents ve GetDependentsInCalculation için sonuç precedentler açısından farklı olabilir. Örneğin, A1 hücresinin formülü ‘IF(TRUE,B2,C3)’ ise, GetPrecedents, A1’in precedentleri olarak B2 ve C3’ü verecektir. Buna paralel olarak, GetDependents kontrol edildiğinde, hem B2 hem de C3’ün bağımlısı A1 olacaktır. Ancak bu formülün hesaplanması için, açıkça sadece B2’nin hesaplanmış sonucu etkileyebileceği anlaşılmaktadır. Bu nedenle, GetPrecedentsInCalculation A1 için C3’ü vermeyecek ve GetDependentsInCalculation C3 için A1’i vermeyecektir. Bazen kullanıcı, aslında mevcut Çalışma Kitabının geçerli verilerine dayalı olarak formüllerin hesaplanmış sonuçlarını etkileyen karşılıklı bağımlılıkları izleme gerekliliğine sahip olabilir; bu durumda, GetDependentsInCalculation/GetPrecedentsInCalculation yöntemleri GetDependents/GetPrecedents yerine kullanılmalıdır.

Aşağıdaki örnek, hücreler için hesaplama zincirine göre precedentleri ve bağımlıları izlemeyi göstermektedir.

from aspose.cells import Workbook
workbook = Workbook()
cells = workbook.worksheets[0].cells
cells.get("A1").formula = "=B1+SUM(B1:B10)+[Book1.xls]Sheet1!B2"
cells.get("A2").formula = "=IF(TRUE,B2,B1)"
workbook.settings.formula_settings.enable_calculation_chain = True
workbook.calculate_formula()
en = cells.get("B1").get_dependents_in_calculation(False)
print("B1's calculation dependents:")
for c in en:
print(c.name)
en = cells.get("B2").get_dependents_in_calculation(False)
print("B2's calculation dependents:")
for c in en:
print(c.name)
en = cells.get("A1").get_precedents_in_calculation()
print("A1's calculation precedents:")
for r in en:
print(r)
en = cells.get("A2").get_precedents_in_calculation()
print("A2's calculation precedents:")
for r in en:
print(r)