در پست قبلی " مجموع درآمد فرد که در یک شیت و چند شیت دیگر آمده است
محاسبه مقادیر مربوط به افراد در شیت های مختلف
Collapse
این تاپیک قفل است.
X
X
-
سلام
در پست قبلی " مجموع درآمد فرد که در یک شیت و چند شیت دیگر آمده است"به دنبال مجموع درآمد افراد که در شیت های مختلف آمده است بودیم. یکی از اساتید محترم راه حلی برای این مساله فرمودند. با این فرمول تنها مجموع درآمد افراد حاضر در یک شیت محاسبه می شود. آیا می توان بدون مراجعه به تک تک شیت ها برای بدست آوردن مجموع افرادی که در این شیت نیز نیستند راه حلی پیدا کرد؟برچسب ها: هیچکدام -
سلام دوست عزیزسلام
در پست قبلی " مجموع درآمد فرد که در یک شیت و چند شیت دیگر آمده است"به دنبال مجموع درآمد افراد که در شیت های مختلف آمده است بودیم. یکی از اساتید محترم راه حلی برای این مساله فرمودند. با این فرمول تنها مجموع درآمد افراد حاضر در یک شیت محاسبه می شود. آیا می توان بدون مراجعه به تک تک شیت ها برای بدست آوردن مجموع افرادی که در این شیت نیز نیستند راه حلی پیدا کرد؟
منظورتون اینه که میخواین جمع کل همه شیت ها رو داشته باشید یا اینکه جمع هر شیت رو تک تک ؟ -
سلام با سپاس
با فرمولی که داده شده می توان مجموع درامد همه افراد شیت 1 را بدست می آید. اما موضوع این است که افراد حاضر در شیت های مختلف با هم یکسان نیستند و برای بدست آوردن مجموع درآمد فردی که در شیت 1 نیست اما در شیت 2 است باید مجددا فرمول را در شیت 2 اجرا کنیم و ...
در مثال حل شده در شیت 1 درامد 6 نفر (کد) محاسبه شد اما با اجرای این دستور در شیت 2 درآمد 142 نفر بدست می اید.
با توجه به حجم زیاد داده ها و شیت ها محاسبه تک تک شیت ها زمان بر است.کامنت
-
با سلام
با توجه به تعداد شیت ها و حجم زیاد داده های مشابه ، بهترین گزینه استفاده از کدنویسی میباشد.(موارد خواسته شده در شیت DATA لیست میگردد.)
کد PHP:Sub TEST1()
Application.ScreenUpdating = False
Dim list1 As New Collection
On Error Resume Next
For Each Sheet In Worksheets
If sh.Name <> "data" Then
z1 = Sheet.Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To z1
list1.Add Sheet.Range("A" & i), CStr(Sheet.Range("A" & i))
Next
End If
Next Sheet
Sheets("DATA").Range("A1") = "ID"
Sheets("DATA").Range("B1") = "Income"
For i = 1 To list1.Count
Sheets("DATA").Range("A" & i + 1) = list1.Item(i)
Next
Application.ScreenUpdating = True
End Sub
Sub TEST2()
k = 2
z2 = Sheets("data").Cells(Rows.Count, "A").End(xlUp).Row
For j = 2 To z2
Sum = 0
For Each Sheet In Worksheets
If Sheet.Name <> "data" Then
z1 = Sheet.Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To z1
If Sheet.Range("A" & i) = Sheets("data").Range("A" & j) Then
Sum = Sum + Sheet.Range("b" & i)
End If
Next
End If
Next Sheet
Sheets("data").Range("b" & k) = Sum
k = k + 1
Next
End Sub
فایل های پیوست شدهکامنت
-




کامنت