Lại hỏi về mảng ?????

  • Thread starter tyfnmax
  • Ngày gửi
T

tyfnmax

Thành viên sơ cấp
2/5/04
40
0
0
HN
#1
Các cao thủ về mảng làm ơn cho hỏi có cách nào sắp sếp 2 cột số khác nhau ( cột A và cột B) thành 1 cột số (C)có thứ tự tăng dần không. Cụ thể :
A1: 2
A2 : 15
A3 : 20
A4 :22
B1: 1
B2 : 8
B3 : 25
Thành cột C có các giá trị :
C1: 1
C2 : 2
C3 : 8
C4 : 15
C5 : 20
C6 : 22
C7 : 25
 
W

workman

Thành viên sơ cấp
22/7/05
372
0
0
46
Ho Chi Minh
#2
ForestC nói:
What a monkey. Trong một mục nào đó mà WhoamI có hỏi về cách lọc ra 1 danh mục từ nhiều nguồn khác nhau đã có đề cập đến vấn đề này mà, dùng mảng thì OK rồi, còn nếu không dùng VBA thì anh sẽ sắp xếp các thành phần đó thế nào đây, hả bro - Anh Workman?
Nghĩ đi các bạn. Chắc chắn các bạn làm được mà. Tôi làm thử thấy cũng dễ thôi, công thức ngắn ngủn à ...

Tôi bật mí một chút nhé: bạn sử dụng hàm SMALL (hoặc Large cũng được) để sắp xếp.
 
paulsteigel

paulsteigel

Thành viên thân thiết
13/11/05
103
0
16
42
Hoà Bình
www.sfdp.net
#3
=SMALL(A:A:B:B,ROW(C1))
Trong đó ROW(C1) là đếm dòng
Cột C là cột kết quả.
Thực ra thì nhằm mục đích gì nhỉ....
Tớ thấy nên đưa ra mục đích sử dụng sẽ hay hơn
 
Sửa lần cuối:
W

workman

Thành viên sơ cấp
22/7/05
372
0
0
46
Ho Chi Minh
#4
paulsteigel nói:
=SMALL(A:A:B:B,ROW(C1))
Trong đó ROW(C1) là đếm dòng
Cột C là cột kết quả.
Thực ra thì nhằm mục đích gì nhỉ....
Tớ thấy nên đưa ra mục đích sử dụng sẽ hay hơn
Tôi đã nói mà, nhoáy một cái là đã có bạn giải được ngay.

Lại thêm một cao cao cao thủ nữa xuất hiện.

Tôi cũng không biết mục đích của bạn tyfnmax đưa ra là gì. Lắm khi chỉ là 1 bài toán để các bạn mê excel thử sức và thư giãn thôi.

À mà bạn tyfnmax (chắc chắn là nam rồi) này, cho tôi tò mò chút nhé, tại sao bạn lại thêm chữ Max vào sau tyfn vậy? Phải nói là nick của bạn cực kỳ ấn tượng đấy.
 
Sửa lần cuối:
adam_tran

adam_tran

Steel Partner
17/5/05
1,373
32
48
41
Goooogle
#5
Thì ra là bài toán tìm công thức... nó đâu có dùng Formula Array hay là các toán tử tổ hợp của các mảng đâu nhỉ. Cái tên chủ đề mơ hồ quá.
 
W

workman

Thành viên sơ cấp
22/7/05
372
0
0
46
Ho Chi Minh
#6
adam_tran nói:
Thì ra là bài toán tìm công thức... nó đâu có dùng Formula Array hay là các toán tử tổ hợp của các mảng đâu nhỉ. Cái tên chủ đề mơ hồ quá.
Thực ra dùng mảng cũng được đấy. Ví dụ trong hàm SMALL, thay vì ta đánh Row(C1), ta có thể dùng một mảng nào đó (ví dụ {1,2,3,4} ) cũng được.
 
M

mysterious_girl

Thành viên sơ cấp
#7
tyfnmax nói:
- Cảm ơn cả nhà nhé. Tôi cứ nghĩ phải sử dụng công thức phức tạp lắm. Không ngờ lại đơn giản vậy.
- Nhận tiện hỏi mọi người là cái lỗi [FONT=.VnArial]#[/FONT]NUM! khi kéo cột C xuống thì sử lý như thế nào ????
- To workman . Anh em ai mà chả TYFNMAX. Tôi chỉ đưa nó làm nick thôi mà.
Anh cứ cho thêm số vào cột A và cột B thì nó sẽ hết thôi. Hoặc là anh có thể dùng hàm if như thế này:
=if(iserror(small(A:A:B:B,row(C1))),"",small(A:A:B:B,row(C1)))
Các anh chị xem rồi chỉ bảo thêm cho em với nhé.
 
W

workman

Thành viên sơ cấp
22/7/05
372
0
0
46
Ho Chi Minh
#8
green_field nói:
Anh cứ cho thêm số vào cột A và cột B thì nó sẽ hết thôi. Hoặc là anh có thể dùng hàm if như thế này:
=if(iserror(small(A:A:B:B,row(C1))),"",small(A:A:B:B,row(C1)))
Các anh chị xem rồi chỉ bảo thêm cho em với nhé.
Đúng quá rồi còn gì nữa. Tôi xin phép "trau chuốt" lại tí thôi. Thay vì gõ A:A:B:B, ta có thể gõ A:B cho gọn.
 
QDuc

QDuc

Thành viên thân thiết
3/6/06
254
18
18
Biển khơi
#9
Tại sao vầy các bạn ơi?

Trong ví dụ hàm mảng của:
SA_DQ nói:
Function PTBac2(aA As Double, bB As Double, cC As Double)
Dim Temp( 1 To 3): Dim DelTa As Double
DelTa= (bB ^ 2) - (4 * aA * cC)
Select Case DelTa
Case Is < 0
Temp(1) = "Voâ nghieäm"
Temp(2) = "": Temp(3) = " "
Case 0
Temp(1) = "Moät nghieäm:"
Temp(2) = -bB / ( 2 * aA): Temp(3) = ""
Case Else
Temp(1) = "Hai nghieäm:"
Temp(2) = (-bB + Sqr( DelTa)) / ( 2 * aA)
Temp(3) = (-bB - Sqr( DelTa))/(2 * aA)
End Select
PTBac2 = Temp
End Function
Chúng ta chọn dãy ô D47:F47 từ D47 (3 biến được trả về!) & nhập =PTBac2( E42 , E43, E44) và ấn tổ hợp 3 phím
nếu tôi khai báo thay vì biến mảng Temp(3) tôi khai biến Temp(1 to 3, 1) và thực hiện như trên;
Khi đó thay vì chọn 3 ô hàng 47 như trên tôi chọn 3 ô trên cột D thì sẽ cho các nghiệm trên cột;
Nhưng chưa biết là tại sao?
Rất mong các cao thủ về mảng cho vài ý kiến giúp tôi hiểu thêm!?
 

Thành viên trực tuyến

  • daongocnam0603
  • vachngandepcnc
  • vivalavida
  • quynhchi10
  • NgocNguyen.s2
  • Sâu ăn hoa cúc
  • akakavn
  • hoang lao ta
  • THANGMAYHS
  • xediengiatot
  • ttchau264
  • Huyen2971991KT

Xem nhiều