[Hỏi Đáp] Thay thế điều kiện bằng 1 ô chỉ định (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

haicosla

Thành viên mới
Tham gia
5/5/21
Bài viết
3
Được thích
0
Xin Chào các Anh/Chị trên diễn đàn.
- Em có hàm như thế này: 1620726998651.png
=SUMPRODUCT(SUMIF(day($D$8:$AH$8);{"8";"9";"10"};$D10:$AH10))
(trong đó D8:AH8 là các ngày trong tháng, D10:AH10 là số của từng ngày cần tính tổng)
và ô AM10 như thế này: 1620727043955.png

AM10=8;9;10
- Em muốn thay thế chuỗi điều kiện kia bằng ô AM10 ( để có thể gõ được ngày tùy chỉnh theo ô AM10).
- Em có thử nhiều hàm và 2 hàm như sau mà không được. 1620727188232.png
=SUMPRODUCT(SUMIF(day($D$8:$AH$8);INDIRECT("{"&AM10&"}");$D10:$AH10))

1620727281259.png|
=SUMPRODUCT(SUMIF(day($D$8:$AH$8);"{"&AM10&"}";$D10:$AH10))

- Chủ yếu em muốn tìm cách thay thế mảng điều kiện bằng 1 ô có thể thay đổi, giống hàm indirect.
Rất mong được sự giúp đỡ của các Bác. Em xin cảm ơn!
 
Với SUMIF(S) không dùng được day($D$8:$AH$8) đâu. "Chỗ đó" phải là THAM CHIẾU chứ không phải là mảng GIÁ TRỊ.

Nếu dùng dòng phụ, vd. $D$7:$AH$7 mà ở đó trích xuất THÁNG từ $D$8:$AH$8 thì nếu muốn dùng INDIRECT thì:
1. AM10 = '8:10 (không A10 = 8;9;10)
2.
Mã:
=SUMPRODUCT(SUMIF($D$7:$AH$7;ROW(INDIRECT(AM10));$D10:$AH10))

Nhưng như thế thì trong AM10 phải là các tháng liên tiếp.
 
INDIRECT("{"&AM10&"}")
"{"&AM10&"}"
Luật của mảng hằng trên bảng tính là giữa hai dấu { } phải là hằng số, không thể là cái gì khác.

Bạn có thể ép nó nhận trị của một ô nhưng phải dùng hàm Evaluate để nó tính thành mảng.
Cách dễ nhất để dùng hàm Evaluate là tạo một name.
MeName =EVALUATE("{" & Sheet1!$AM$10 & "}")

Dùng trong công thức:
=SUMPRODUCT(SUMIF(day($D$8:$AH$8);MeName;$D10:$AH10))

Tôi chỉ mách cho bạn xảo thuật lập mảng thôi. Công thức của bạn có đúng hay không tôi hoàn toàn không quan tâm.
 
Với SUMIF(S) không dùng được day($D$8:$AH$8) đâu. "Chỗ đó" phải là THAM CHIẾU chứ không phải là mảng GIÁ TRỊ.

Nếu dùng dòng phụ, vd. $D$7:$AH$7 mà ở đó trích xuất THÁNG từ $D$8:$AH$8 thì nếu muốn dùng INDIRECT thì:
1. AM10 = '8:10 (không A10 = 8;9;10)
2.
Mã:
=SUMPRODUCT(SUMIF($D$7:$AH$7;ROW(INDIRECT(AM10));$D10:$AH10))

Nhưng như thế thì trong AM10 phải là các tháng liên tiếp.
Cảm ơn bác đã trợ giúp. Hàm này trên excel không dùng được, nhưng trong Google Sheets dùng được bác ạ. Mà ô AM10 là các ngày riêng biệt, không liên tiếp.
Bài đã được tự động gộp:

INDIRECT("{"&AM10&"}")
"{"&AM10&"}"
Luật của mảng hằng trên bảng tính là giữa hai dấu { } phải là hằng số, không thể là cái gì khác.

Bạn có thể ép nó nhận trị của một ô nhưng phải dùng hàm Evaluate để nó tính thành mảng.
Cách dễ nhất để dùng hàm Evaluate là tạo một name.
MeName =EVALUATE("{" & Sheet1!$AM$10 & "}")

Dùng trong công thức:
=SUMPRODUCT(SUMIF(day($D$8:$AH$8);MeName;$D10:$AH10))

Tôi chỉ mách cho bạn xảo thuật lập mảng thôi. Công thức của bạn có đúng hay không tôi hoàn toàn không quan tâm.
Cảm ơn bác. Nếu mảng của hằng bắt buộc là hằng thì chắc không làm được ạ. Em quên mất nói là em làm trên Google Sheets, Tạo name thì có nhiều dòng để tính tổng ( $D10:$AH10) mỗi dòng riêng biệt, kiểu có nhiều nhân viên, mỗi nhân viên 1 dòng thì phải tạo nhiều name đúng không bác.
Em xin phép gửi link bảng tính, mong bác trợ giúp.
Em mô tả qua bảng tính. Làm thêm ngày trong tuần x150% lương, làm thêm cuối tuần x200% lương, nếu làmở nhà thì sẽ nhận 70% của 150%, 200%. Tức là trong tuần 150%X70%, tương tự với ngày cuối tuần. Các ngày làm thêm ở nhà em muốn điền vào ô AM10.
docs.google. com/spreadsheets/d/1Vx1o3D9CYCxgMwtBygGi2c_YrwHUM0C-WXDGkWII9vg
 
Lần chỉnh sửa cuối:
... Các ngày làm thêm ở nhà em muốn điền vào ô AM10.
Tôi vốn không thích và không biết dùng công thức khủng.
Theo tôi hiểu bài #1 thì bạn bị vướng ở chỗ làm cách nào chuyển trị 8.9.10 ở một ô thành mảng { 8, 9, 10 }. Bài #3 tôi đưa ra giải pháp là ép trị ở ô AM10 thành mảng, đúng với cái tôi hiểu.

Google Sheets không có hàm tương đương với Evaluate. Bạn bắt buộc phải dùng script để làm.
 
Tôi vốn không thích và không biết dùng công thức khủng.
Theo tôi hiểu bài #1 thì bạn bị vướng ở chỗ làm cách nào chuyển trị 8.9.10 ở một ô thành mảng { 8, 9, 10 }. Bài #3 tôi đưa ra giải pháp là ép trị ở ô AM10 thành mảng, đúng với cái tôi hiểu.

Google Sheets không có hàm tương đương với Evaluate. Bạn bắt buộc phải dùng script để làm.
Em cũng thử tìm hàm evaluate trên google sheets nhưng không thấy. Chắc vẫn phải làm thủ công. Cách bác chỉ áp dụng cho vài công thức khác của em được, biết thêm được thủ thuật mới, cảm ơn bác.
 
Web KT

Bài viết mới nhất

Back
Top Bottom