-
01-17-2013, 08:06 PM #1Junior Member
- Ngày tham gia
- Dec 2015
- Bài viết
- 0
Hàm tự tạo trả về mảng các giá trị
:15:BÀI 1: KHÁI NIỆM HÀM TRẢ VỀ 1 MẢNG CÁC GIÁ TRỊ:
Như chúng ta được biết các hàm trong excel nói chung, trong đó có cả các hàm tự tạo (UFD) thường trả về giá trị tại một ô hiện hành.
Vậy có thể có cách nào để một hàm tự tạo nào đó trả về là một mảng giá trị (hiển thị trên các ô khác nhau của 1 vùng)
Lấy ví dụ: Ta dùng hàm VLOOKUP() để trả về một phần tử đầu tiên thỏa mãn điều kiện của hàm. Tuy nhiên trong bảng tham chiếu có đến hơn 9 phần tử thỏa mãn với điều kiện đó.
Vậy có cách nào để nhập công thức vào một hay nhiều ô thì tất cả các kết quả sẽ hiện ra ở các ô hay không (kể từ ô hiện hành)?
Muốn vậy, ta xét đến hàm tự tạo sau đây dùng để giải phương trình bậc hai:
Mã nguồn PHP:[COLOR=#000000]
[/COLOR][COLOR=#007700]Function [/COLOR][COLOR=#0000BB]PTBac2[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]aA [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Double[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]bB [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Double[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]cC [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Double[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Dim Temp[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000BB]1 To 3[/COLOR][COLOR=#007700]): [/COLOR][COLOR=#0000BB]Dim DelTa [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Double DelTa[/COLOR][COLOR=#007700]= ([/COLOR][COLOR=#0000BB]bB [/COLOR][COLOR=#007700]^ [/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]) - ([/COLOR][COLOR=#0000BB]4 [/COLOR][COLOR=#007700]* [/COLOR][COLOR=#0000BB]aA [/COLOR][COLOR=#007700]* [/COLOR][COLOR=#0000BB]cC[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Temp[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]“Phuong Trinh “ Select [/COLOR][COLOR=#007700]Case [/COLOR][COLOR=#0000BB]DelTa [/COLOR][COLOR=#007700]Case [/COLOR][COLOR=#0000BB]Is [/COLOR][COLOR=#007700]< [/COLOR][COLOR=#0000BB]0 Temp[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]Temp[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) & [/COLOR][COLOR=#DD0000]"Vo nghiem" [/COLOR][COLOR=#0000BB]Temp[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#DD0000]" "[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]Temp[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]3[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#DD0000]" " [/COLOR][COLOR=#007700]Case [/COLOR][COLOR=#0000BB]0 Temp[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]Temp[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) & [/COLOR][COLOR=#DD0000]"Mot nghiem:" [/COLOR][COLOR=#0000BB]Temp[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]) = -[/COLOR][COLOR=#0000BB]bB [/COLOR][COLOR=#007700]/ ( [/COLOR][COLOR=#0000BB]2 [/COLOR][COLOR=#007700]* [/COLOR][COLOR=#0000BB]aA[/COLOR][COLOR=#007700]): [/COLOR][COLOR=#0000BB]Temp[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]3[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#DD0000]"" [/COLOR][COLOR=#007700]Case Else [/COLOR][COLOR=#0000BB]Temp[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]Temp[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) & [/COLOR][COLOR=#DD0000]"Hai nghiem:" [/COLOR][COLOR=#0000BB]Temp[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]) = (-[/COLOR][COLOR=#0000BB]bB [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]Sqr[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000BB]DelTa[/COLOR][COLOR=#007700])) / ( [/COLOR][COLOR=#0000BB]2 [/COLOR][COLOR=#007700]* [/COLOR][COLOR=#0000BB]aA[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Temp[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]3[/COLOR][COLOR=#007700]) = (-[/COLOR][COLOR=#0000BB]bB [/COLOR][COLOR=#007700]- [/COLOR][COLOR=#0000BB]Sqr[/COLOR][COLOR=#007700]( [/COLOR][COLOR=#0000BB]DelTa[/COLOR][COLOR=#007700]))/([/COLOR][COLOR=#0000BB]2 [/COLOR][COLOR=#007700]* [/COLOR][COLOR=#0000BB]aA[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]End Select PTBac2 [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Temp End [/COLOR][COLOR=#007700]Function [/COLOR]
Sau đó dùng chuột quét chọn các ô từ [B3] đến [d3]
Tiếp theo bấm chuột lên thanh công thức và nhập cú pháp hàm
[B]:rachoa:
---------- Post added at 01:06 ---------- Previous post was at 01:02 ----------
:dangiuqua:2./ Hàm trả về tên các tập tin trong thư mục cụ thể nào đó (với đường dẫn đầy đủ):
Giả dụ chúng ta có thư mục FileSpec, và muốn liệt kê tên các tập tin trong đó lên trang tính excel, ta có thể dùng hàm mảng tự tạo như sau.
Mã nguồn PHP:[COLOR=#000000]
[/COLOR][COLOR=#007700]Function [/COLOR][COLOR=#0000BB]FileList[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]FileSpec [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]String[/COLOR][COLOR=#007700]) As [/COLOR][COLOR=#0000BB]Variant [/COLOR][COLOR=#DD0000]' Returns an array of filenames that match FileSpec;' ' If no matching files are found, it returns False.' [/COLOR][COLOR=#0000BB]Dim FileArray[/COLOR][COLOR=#007700]() As [/COLOR][COLOR=#0000BB]Variant Dim FileCount [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Integer[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]Dim FileName [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]String On Error [/COLOR][COLOR=#007700]GoTo [/COLOR][COLOR=#0000BB]NoFiles FileCount [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]FileName [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Dir[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]FileSpec[/COLOR][COLOR=#007700]) If [/COLOR][COLOR=#0000BB]FileName [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]"" [/COLOR][COLOR=#0000BB]Then [/COLOR][COLOR=#007700]GoTo [/COLOR][COLOR=#0000BB]NoFiles Loop until no more matching files are found [/COLOR][COLOR=#007700]Do While [/COLOR][COLOR=#0000BB]FileName [/COLOR][COLOR=#007700]<> [/COLOR][COLOR=#DD0000]"" [/COLOR][COLOR=#0000BB]FileCount [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]FileCount [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1 ReDim Preserve FileArray[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]FileCount[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]FileArray[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]FileCount[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]FileName FileName [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Dir[/COLOR][COLOR=#007700]() [/COLOR][COLOR=#0000BB]Loop FileArray[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]FileCount FileList [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]FileArray[/COLOR][COLOR=#007700]: Exit Function [/COLOR][COLOR=#0000BB]NoFiles[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]FileList [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]False End [/COLOR][COLOR=#007700]Function [/COLOR]
View more random threads:
- Ai biet lam cai cai nay khong
- Định dạng chữ trong excel
- làm dự toán
- Xin hỏi cách tạo hàm tự động đếm trong excel
- xin giúp đỡ của mọi người về code VBA lọc dữ liệu có điều kiện với khối lượng lớn dữ liệu
- Tạo nút lệnh vừa khít với ô trong Excel
- đăng ký học vba excel tại hà nội
- Tạo mã danh sách khách hàng trong Excel
- tạo máy tính bằng vba trong excel
- Tự đánh thứ tự theo số mình nhập trước
-
01-17-2013, 08:40 PM #2Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 12
Ðề: Hàm tự tạo trả về mảng các giá trị
Bạn cho mình hỏi tý, điểm ưu thế của hàm này với offset à gì vậy?
-
01-17-2013, 09:32 PM #3Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 3
Ðề: Bài 2
:tapta:3./ Trích xuất dữ liệu của 1 người theo năm sinh trùng tên Giả dụ cơ quan chúng ta có vài trăm nhân viên; Trong đó có một số không ít người trùng họ tên; (Xin xem bảng sau:rachoa:[/RIGHT]
-
01-18-2013, 01:27 PM #4Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Bài 3: Tìm địa điểm & cự ly giữa các trạm thu phát sóng
:dangiuqua:Giả dụ chúng ta có danh sách liệt kê các trạm thu phát như trong file đính kèm. (Cột 'A' là tên trạm; Cột 'B' là kinh độ & cột 'C' là vĩ độ)
Để tìm ra trạm gần nhất & cụ ly giữa trạm làm mốc & trạm gần nhất; chúng ta đã có hàm người dùng như sau:
Mã nguồn PHP:[COLOR=#000000]
[/COLOR][COLOR=#007700]Function [/COLOR][COLOR=#0000BB]TramGanNhat1[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Tram [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]LookupRange [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Optional Ten [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Boolean [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]True[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Dim Long_ [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Double[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Lat_ [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Double[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Min_ [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Double[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Temp [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Double Dim wW [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Double[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Zz [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Double Dim Clls [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]Dim MyAdd [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]String Long_ [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Tram[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700](, [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Value[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]Lat_ [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Tram[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700](, [/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Value Min_ [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]10 [/COLOR][COLOR=#007700]^ [/COLOR][COLOR=#0000BB]6 [/COLOR][COLOR=#007700]For [/COLOR][COLOR=#0000BB]Each Clls In LookupRange[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Cells[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Resize[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]LookupRange[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Rows[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Count[/COLOR][COLOR=#007700]) If [/COLOR][COLOR=#0000BB]Clls[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Value [/COLOR][COLOR=#007700]<> [/COLOR][COLOR=#0000BB]Tram[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Value Then wW [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Clls[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700](, [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Value[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]Zz [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Clls[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700](, [/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Value Temp [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Abs[/COLOR][COLOR=#007700]((([/COLOR][COLOR=#0000BB]wW [/COLOR][COLOR=#007700]- [/COLOR][COLOR=#0000BB]Long_[/COLOR][COLOR=#007700]) ^ [/COLOR][COLOR=#0000BB]2 [/COLOR][COLOR=#007700]+ ([/COLOR][COLOR=#0000BB]Zz [/COLOR][COLOR=#007700]- [/COLOR][COLOR=#0000BB]Lat_[/COLOR][COLOR=#007700]) ^ [/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]) ^ ([/COLOR][COLOR=#0000BB]1 [/COLOR][COLOR=#007700]/ [/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700])) If [/COLOR][COLOR=#0000BB]Temp [/COLOR][COLOR=#007700]< [/COLOR][COLOR=#0000BB]Min_ Then Min_ [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Temp[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]MyAdd [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Clls[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Address End [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]End [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]Next Clls TramGanNhat1 [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]IIf[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Ten[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]MyAdd[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Temp[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]End [/COLOR][COLOR=#007700]Function [/COLOR]
:15:Nhưng hàm này (đưa ra kết quả tương ứng trên 2 cột 'H' & 'I' trong file đính kèm) vẫn chưa thỏa mản yêu cầu người dùng. Yêu cầu đó là dùng 1 hàm cho ra hai kết quả liền 1 lúc; Một là địa danh trạm gần nhất (dạng chuỗi kí tự) & cự ly (Kiểu dữ liệu số) cho một lần viết hàm.
Yêu cầu này được thỏa mãn bỡi hàm mảng người dùng sau:
Mã nguồn PHP:[COLOR=#000000]
Option Explicit[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]Option Base 1 [/COLOR][COLOR=#007700]Function [/COLOR][COLOR=#0000BB]TramGanNhat[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Tram [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]LookupRange [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Dim Long_ [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Double[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Lat_ [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Double[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Min_ [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Double[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Temp [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Double Dim wW [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Double[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Zz [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Double Dim Clls [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]Dim MyAdd [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]String Long_ [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Tram[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700](, [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Value[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]Lat_ [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Tram[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700](, [/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Value Min_ [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]10 [/COLOR][COLOR=#007700]^ [/COLOR][COLOR=#0000BB]6 [/COLOR][COLOR=#007700]For [/COLOR][COLOR=#0000BB]Each Clls In LookupRange[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Cells[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Resize[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]LookupRange[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Rows[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Count[/COLOR][COLOR=#007700]) If [/COLOR][COLOR=#0000BB]Clls[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Value [/COLOR][COLOR=#007700]<> [/COLOR][COLOR=#0000BB]Tram[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Value Then wW [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Clls[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700](, [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Value[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]Zz [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Clls[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700](, [/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Value Temp [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Abs[/COLOR][COLOR=#007700]((([/COLOR][COLOR=#0000BB]wW [/COLOR][COLOR=#007700]- [/COLOR][COLOR=#0000BB]Long_[/COLOR][COLOR=#007700]) ^ [/COLOR][COLOR=#0000BB]2 [/COLOR][COLOR=#007700]+ ([/COLOR][COLOR=#0000BB]Zz [/COLOR][COLOR=#007700]- [/COLOR][COLOR=#0000BB]Lat_[/COLOR][COLOR=#007700]) ^ [/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]) ^ ([/COLOR][COLOR=#0000BB]1 [/COLOR][COLOR=#007700]/ [/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700])) If [/COLOR][COLOR=#0000BB]Temp [/COLOR][COLOR=#007700]< [/COLOR][COLOR=#0000BB]Min_ Then Min_ [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Temp[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]MyAdd [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Clls[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Address End [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]End [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]Next Clls ReDim MDL[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]) As [/COLOR][COLOR=#0000BB]Variant MDL[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]MyAdd[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]MDL[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]Min_ TramGanNhat [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]MDL End [/COLOR][COLOR=#007700]Function [/COLOR]
Kết quả thể hiện trên 2 cột 'E' & 'F' của 1 dòng tương ứng.
-
01-18-2013, 02:01 PM #5Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Bài 4: Dùng hàm mảng tự tạo để thể hiện các nghiệm của fương trình đường tròn
Đề bài:
Hãy tìm các cập nghiệm của fương trình
X^2 + Y^2 = Z ^2 với X & Y là số nguyên dương < 21
Để giải bài tập này, chúng ta nhờ tới sự hỗ trợ của hàm mảng tự tạo sau đây:
Mã nguồn PHP:[COLOR=#000000]
Option Explicit[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]Option Base 1 [/COLOR][COLOR=#007700]Function [/COLOR][COLOR=#0000BB]DuongTron[/COLOR][COLOR=#007700]() [/COLOR][COLOR=#0000BB]Dim Xx [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Byte[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Yy [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Byte[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Zz [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Double[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Dem [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Byte ReDim MDL[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]30[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]3[/COLOR][COLOR=#007700]) For [/COLOR][COLOR=#0000BB]Xx [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]1 To 20 [/COLOR][COLOR=#007700]For [/COLOR][COLOR=#0000BB]Yy [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]1 To 20 Zz [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Abs[/COLOR][COLOR=#007700](([/COLOR][COLOR=#0000BB]Xx [/COLOR][COLOR=#007700]^ [/COLOR][COLOR=#0000BB]2 [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]Yy [/COLOR][COLOR=#007700]^ [/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]) ^ ([/COLOR][COLOR=#0000BB]1 [/COLOR][COLOR=#007700]/ [/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700])) If [/COLOR][COLOR=#0000BB]Int[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Zz[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]Zz Then Dem [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Dem [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1 MDL[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Dem[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]Xx[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]MDL[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Dem[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]Yy MDL[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Dem[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]3[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]Zz End [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]Next Yy[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Xx [/COLOR][COLOR=#007700]For [/COLOR][COLOR=#0000BB]Xx [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Dem [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1 To 30 MDL[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Xx[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#DD0000]""[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]MDL[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Xx[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#DD0000]"" [/COLOR][COLOR=#0000BB]MDL[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Xx[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]3[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#DD0000]"" [/COLOR][COLOR=#0000BB]Next Xx DuongTron [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]MDL End [/COLOR][COLOR=#007700]Function [/COLOR]
Ta dùng chuột quét chọn vùng từ "G1:I16"; Ta tô màu nền cho vùng này xanh nhạt.
Sau đó, ta bấm chuột lên thanh công thức & nhập cú fáp =DuongTron()
Sau đó ta kết thúc hàm bằng tổ hợp 3 fím dành cho hàm mảng.
Chúc các bạn thành công.
:15:
-
01-23-2013, 01:23 PM #6Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Ðề: Hàm tự tạo trả về mảng các giá trị
Giả dụ chúng ta có bảng số liệu như sau:
Mã:Đ Vị |Viết Bis|Bút chì|Tập|Giấy|Thước P. KT | 11 | 19 | 27| 35| 43 PX A | 40 | 36 | 32| 38| 34 PX B | 95 | 85 | 75| 65| 55
Mã nguồn PHP:[COLOR=#000000]
Trích [/COLOR][COLOR=#007700]| [/COLOR][COLOR=#0000BB]Đ Vị[/COLOR][COLOR=#007700]| [/COLOR][COLOR=#0000BB]SLg Viết Bis[/COLOR][COLOR=#007700]|[/COLOR][COLOR=#0000BB]P[/COLOR][COLOR=#007700]. [/COLOR][COLOR=#0000BB]KT[/COLOR][COLOR=#007700]| [/COLOR][COLOR=#0000BB]11 Bút chì [/COLOR][COLOR=#007700]|[/COLOR][COLOR=#0000BB]P[/COLOR][COLOR=#007700]. [/COLOR][COLOR=#0000BB]KT[/COLOR][COLOR=#007700]| [/COLOR][COLOR=#0000BB]19 Tập [/COLOR][COLOR=#007700]|[/COLOR][COLOR=#0000BB]P[/COLOR][COLOR=#007700]. [/COLOR][COLOR=#0000BB]KT[/COLOR][COLOR=#007700]| [/COLOR][COLOR=#0000BB]27 Giấy [/COLOR][COLOR=#007700]|[/COLOR][COLOR=#0000BB]P[/COLOR][COLOR=#007700]. [/COLOR][COLOR=#0000BB]KT[/COLOR][COLOR=#007700]| [/COLOR][COLOR=#0000BB]35 Thước [/COLOR][COLOR=#007700]|[/COLOR][COLOR=#0000BB]P[/COLOR][COLOR=#007700]. [/COLOR][COLOR=#0000BB]KT[/COLOR][COLOR=#007700]| [/COLOR][COLOR=#0000BB]43 Viết Bis[/COLOR][COLOR=#007700]|[/COLOR][COLOR=#0000BB]PX A [/COLOR][COLOR=#007700]| [/COLOR][COLOR=#0000BB]40 Bút chì [/COLOR][COLOR=#007700]|[/COLOR][COLOR=#0000BB]PX A [/COLOR][COLOR=#007700]| [/COLOR][COLOR=#0000BB]36 Tập [/COLOR][COLOR=#007700]|[/COLOR][COLOR=#0000BB]PX A [/COLOR][COLOR=#007700]| [/COLOR][COLOR=#0000BB]32 Giấy [/COLOR][COLOR=#007700]|[/COLOR][COLOR=#0000BB]PX A [/COLOR][COLOR=#007700]| [/COLOR][COLOR=#0000BB]38 Thước [/COLOR][COLOR=#007700]|[/COLOR][COLOR=#0000BB]PX A [/COLOR][COLOR=#007700]| [/COLOR][COLOR=#0000BB]34 Viết Bis[/COLOR][COLOR=#007700]|[/COLOR][COLOR=#0000BB]PX B [/COLOR][COLOR=#007700]| [/COLOR][COLOR=#0000BB]95 Bút chì [/COLOR][COLOR=#007700]|[/COLOR][COLOR=#0000BB]PX B [/COLOR][COLOR=#007700]| [/COLOR][COLOR=#0000BB]85 Tập [/COLOR][COLOR=#007700]|[/COLOR][COLOR=#0000BB]PX B [/COLOR][COLOR=#007700]| [/COLOR][COLOR=#0000BB]75 Giấy [/COLOR][COLOR=#007700]|[/COLOR][COLOR=#0000BB]PX B [/COLOR][COLOR=#007700]| [/COLOR][COLOR=#0000BB]65 Thước [/COLOR][COLOR=#007700]|[/COLOR][COLOR=#0000BB]PX B [/COLOR][COLOR=#007700]| [/COLOR][COLOR=#0000BB]55 [/COLOR]
Mã nguồn PHP:[COLOR=#000000]
Option Explicit [/COLOR][COLOR=#007700]Function [/COLOR][COLOR=#0000BB]PhanTach[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Rng [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Dim Cot [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Byte[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Hang [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Long Dim Col [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Byte[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]jJ [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Long[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Rws [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Long Cot [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Columns[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Count[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]Hang [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Rows[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Count ReDim Mang[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1 To Cot [/COLOR][COLOR=#007700]* [/COLOR][COLOR=#0000BB]Hang[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1 To 3[/COLOR][COLOR=#007700]): [/COLOR][COLOR=#0000BB]Mang[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#DD0000]"Trích" [/COLOR][COLOR=#0000BB]Mang[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#DD0000]"DV"[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]Mang[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]3[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#DD0000]"SL" [/COLOR][COLOR=#007700]For [/COLOR][COLOR=#0000BB]Rws [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]2 To Hang [/COLOR][COLOR=#007700]* [/COLOR][COLOR=#0000BB]Cot Col [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Col [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1 [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]Col [/COLOR][COLOR=#007700]> [/COLOR][COLOR=#0000BB]Cot [/COLOR][COLOR=#007700]- [/COLOR][COLOR=#0000BB]1 Then Col [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]: [/COLOR][COLOR=#0000BB]jJ [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]jJ [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1 End [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]Mang[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Rws[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1 [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]Col[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Value Mang[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Rws[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]2[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]jJ [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Value Mang[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Rws[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]3[/COLOR][COLOR=#007700]) = [/COLOR][COLOR=#0000BB]Rng[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Offset[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]jJ [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Col[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Value Next Rws PhanTach [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Mang[/COLOR][COLOR=#007700]() [/COLOR][COLOR=#0000BB]End [/COLOR][COLOR=#007700]Function [/COLOR]
Dùng chuột quét chọn vùng i1:K16 & tiếp theo ta bấm chuột lên thanh công thức & nhập cú fáp hanTach(B2:G5)
(Vùng B2:G5 là vùng chứa dữ liệu ban đầu)
Sau đó kết thúc bằng tổ hợp 3 fím dành cho hàm mảng.
(húc các bạn thành công.
-
02-18-2013, 02:18 PM #7Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 8
Ðề: Hàm tự tạo trả về mảng các giá trị
Gửi bởi newbee
-
02-18-2013, 05:33 PM #8Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 14
Ðề: Hàm tự tạo trả về mảng các giá trị
trong excel mình kém phần này nhất: đó là sử dụng các hàm. huhu. ai có cách nào bày cho mình với.
-
02-18-2013, 08:40 PM #9Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Hàm tự tạo trả về mảng các giá trị
Trong excel mình kém phần này nhất: đó là sử dụng các hàm. huhu.
Ai có cách nào bày cho mình với.
Néu chỉ đang là sinh viên, thì bạn sang ******************/forum/ sẽ tìm thấy 1 số từ cơ bản đến fức tạp nhất của VN!
Chúc thành công nhân dịp xuân về!
:lala:
-
04-04-2013, 03:53 AM #10Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Hàm tự tạo trả về mảng các giá trị
Trong hình ta thấy trang tính chứa đề bài gồm dữ liệu trước cột [K] (vùng Input);
Yêu cầu ta thu dược số liệu điền vô form có bên fải của trang tính.
Với lưu í là trường số lượng được tính từ trị tương ứng trong cột [C] của application đã chọn ở ô [M10]
ứng với hệ số ghi dưới các ô [D7:F7] (với App4 ta có số lượng 400 & hệ số là 0.4 (400 * 0.4)
Sau đó nhân với hệ số đang ghi trong [G8:j8]
Toàn bộ công việc đã ghi trong file kèm theo;
Công việc còn lại cuối cùng của bạn chỉ là chọn 1 application trong danh sách có sẵn trong [M10]
Chúc các bạn vui vẻ.
Dự án căn hộ cao cấp Vinhomes Central Park xây dựng bởi VinGroup tận hưởng cuộc sống khu trung tâm thiết kế vượt trội. Vinhomes Vinhomescentralparktc tận hưởng cuộc sống thiết kế mở tiện nghi vượt...
Khu đô thị Vinhomes Central Park khu yên tĩnh