Hướng dẫn google sheets multiple values in one cell - google trang tính nhiều giá trị trong một ô

Các biên tập viên của Google Docs giúp đỡ

Đăng nhập

Google trợ giúp

  • Trung tâm trợ giúp
  • Cộng đồng
  • Các biên tập viên Google Docs
  • Chính sách bảo mật
  • Điều khoản dịch vụ
  • Gửi phản hồi

Gửi phản hồi về ...

Điều này trợ giúp nội dung & thông tin

Kinh nghiệm trung tâm trợ giúp chung

  • Trung tâm trợ giúp
  • Cộng đồng

Các biên tập viên Google Docs

Sử dụng Google Sheets, tôi có hai bảng sau:

Bảng đầu tiên

Size   | Code
--------------
Large  | L
Small  | S
XLarge | XL

Bảng thứ 2

Values       | Codes
-------------------
Large,Small  | L,S
XLarge,Small | XL,S
XLarge,large | XL,L

Tôi cần một chức năng tra cứu trên cột

Values       | Codes
-------------------
Large,Small  | L,S
XLarge,Small | XL,S
XLarge,large | XL,L
6 để trả về mã cho các giá trị theo.

Khi tôi sử dụng:

=LOOKUP(Values Column,Size,Code)

Tôi chỉ có một mã ví dụ L. Làm cách nào để nhận mã: (l, s) (xl, s) (xl, l), v.v.?

Mục đích chính của danh sách thả xuống trong Google Sheets là cung cấp các tùy chọn mà người dùng có thể chọn. Nó cung cấp cho người dùng một cái nhìn rõ ràng về tất cả các tùy chọn có sẵn và cũng đảm bảo người dùng chỉ chọn các mục được phép.

Danh sách thả xuống cũng đảm bảo rằng có ít lỗi hơn vì người dùng giờ đây có thể chọn từ danh sách được xác định trước thay vì gõ thủ công nội dung ô.

Google Sheets cho phép chúng tôi sử dụng chức năng này một cách dễ dàng. Chỉ với một vài cú nhấp chuột, bạn có thể tạo một thả xuống một tế bào hoặc điền vào toàn bộ hàng hoặc cột với danh sách thả xuống.

Tuy nhiên, bạn sẽ nhận thấy rằng danh sách thả xuống Google Sheets mặc định cho phép người dùng chỉ chọn một mục duy nhất từ ​​danh sách.

Thông thường, bạn có thể cần chọn nhiều hơn một tùy chọn trong danh sách thả xuống. Ví dụ, khi có một bộ sưu tập màu sắc cho bạn lựa chọn, bạn có thể thích nhiều hơn một màu.select more than one option in a drop-down list. For example, when there’s a collection of colors for you to choose from, you might like more than one color.

Hoặc có thể muốn có được một danh sách các ngôn ngữ mã hóa mà người dùng thành thạo.

Trong những trường hợp như vậy, có thể người dùng biết nhiều hơn một và cần phải chọn nhiều tùy chọn từ việc thả xuống.select multiple options from the drop-down.

Do đó, nhiều lựa chọn trong danh sách thả xuống có thể khá hữu ích. Thật không may, tùy chọn này không được phép theo truyền thống trong Google Sheets. Bạn chỉ được phép một tùy chọn tại một thời điểm.

Tin tốt là có một cách xung quanh điều này. Có thể thực hiện danh sách thả xuống của bạn cho phép nhiều lựa chọn bằng cách sử dụng Google AppScript.

Trong bài viết này, tôi sẽ chỉ cho bạn cách tạo một danh sách thả xuống cho phép nhiều lựa chọn (một cái gì đó như hiển thị bên dưới).create a drop-down list that allows multiple selections (something as shown below).

Nhưng trước tiên, hãy để bắt đầu từ đầu.

  • Cho phép nhiều lựa chọn trong danh sách thả xuống (với sự lặp lại)
    • Tạo danh sách thả xuống
    • Thêm tập lệnh ứng dụng Google để bật nhiều lựa chọn
  • Cho phép nhiều lựa chọn trong danh sách thả xuống (không lặp lại)
  • Nhiều lựa chọn trong thả xuống (toàn bộ cột hoặc nhiều ô)

Hãy bắt đầu bằng cách tạo một danh sách thả xuống mới từ danh sách các tùy chọn màu.

Nhấn vào đây để nhận một bản sao của Google Sheets có nhiều lựa chọn được bật (tạo một bản sao để sử dụng nó). that has multiple selections enabled (make a copy to use it).

Cho phép nhiều lựa chọn trong danh sách thả xuống (với sự lặp lại)

Tạo danh sách thả xuống

Hướng dẫn google sheets multiple values in one cell - google trang tính nhiều giá trị trong một ô

Để tạo danh sách thả xuống cho phép nhiều lựa chọn, bạn cần thực hiện hai điều:

  1. Tạo danh sách thả xuống bằng danh sách các mục
  2. Thêm chức năng trong trình soạn thảo tập lệnh sẽ cho phép nhiều lựa chọn trong thả xuống.

Hãy xem xét từng bước một trong các bước này một cách chi tiết

Tạo danh sách thả xuống

Giả sử tôi có một bộ dữ liệu các mục như được hiển thị bên dưới và tôi muốn tạo một danh sách thả xuống trong ô C1.

Hướng dẫn google sheets multiple values in one cell - google trang tính nhiều giá trị trong một ô

Dưới đây là các bước để vì thế này:

  1. Chọn ô C1 (nơi bạn muốn thả xuống)
  2. Nhấp vào tùy chọn Dữ liệu trong menu
    Hướng dẫn google sheets multiple values in one cell - google trang tính nhiều giá trị trong một ô
  3. Nhấp vào xác thực dữ liệu
    Hướng dẫn google sheets multiple values in one cell - google trang tính nhiều giá trị trong một ô
  4. Trong hộp thoại Xác thực dữ liệu, đảm bảo ‘phạm vi ô, đề cập đến ô nơi bạn muốn thả xuống
    Hướng dẫn google sheets multiple values in one cell - google trang tính nhiều giá trị trong một ô
  5. Trong các tiêu chí, chọn Danh sách từ một phạm vi, và sau đó chọn phạm vi có các mục bạn muốn hiển thị trong việc thả xuống.
    Hướng dẫn google sheets multiple values in one cell - google trang tính nhiều giá trị trong một ô
  6. Nhấp vào Lưu

Dropdown của bạn bây giờ sẽ xuất hiện trong ô được chỉ định của bạn (C1 trong ví dụ này). Khi bạn nhấp vào mũi tên, bạn sẽ thấy danh sách các tùy chọn của mình.

Lưu ý rằng bạn chỉ được phép chọn một tùy chọn cùng một lúc.

Bây giờ hãy để tôi chỉ cho bạn cách chuyển đổi thả xuống này (chỉ cho phép một mục được hiển thị trong ô) thành mục cho phép nhiều lựa chọn.

Và để làm điều đó, bạn cần thêm tập lệnh chức năng trong trình chỉnh sửa tập lệnh Google Sheets.

Thêm tập lệnh ứng dụng Google để bật nhiều lựa chọn

Dưới đây là mã tập lệnh mà bạn sẽ phải sao chép và dán vào trình chỉnh sửa tập lệnh (các bước được đề cập bên dưới phần sau mã):

function onEdit(e) {
var oldValue;
var newValue;
var ss=SpreadsheetApp.getActiveSpreadsheet();
var activeCell = ss.getActiveCell();
if(activeCell.getColumn() == 3 && activeCell.getRow() == 1 && ss.getActiveSheet().getName()=="Sheet1") {
newValue=e.value;
oldValue=e.oldValue;
if(!e.value) {
activeCell.setValue("");
}
else {
if (!e.oldValue) {
activeCell.setValue(newValue);
}
else {
activeCell.setValue(oldValue+', '+newValue);
}
}
}
}

Dưới đây là các bước để thêm mã tập lệnh này trong phụ trợ Google Sheets để việc thả xuống chúng tôi đã tạo trong ô C1 có thể cho phép chọn nhiều hơn một tùy chọn:

  1. Nhấp vào tùy chọn Công cụ trong menu
  2. Nhấp vào trình chỉnh sửa tập lệnh. Điều này sẽ mở trình chỉnh sửa tập lệnh trong một cửa sổ mới
    Hướng dẫn google sheets multiple values in one cell - google trang tính nhiều giá trị trong một ô
  3. Trong cửa sổ Code.gs, xóa bất cứ thứ gì đã có và sao chép và dán mã macro trên
    Hướng dẫn google sheets multiple values in one cell - google trang tính nhiều giá trị trong một ô
  4. Nhấp vào nút Lưu trong thanh công cụ (hoặc sử dụng điều khiển phím tắt + S)
    Hướng dẫn google sheets multiple values in one cell - google trang tính nhiều giá trị trong một ô
  5. Đặt tên cho dự án (bạn chỉ cần làm điều này một lần)
    Hướng dẫn google sheets multiple values in one cell - google trang tính nhiều giá trị trong một ô
  6. Đóng cửa sổ tập lệnh (nếu bạn muốn)

Bây giờ quay lại bảng tính và thử thực hiện nhiều lựa chọn trong việc thả xuống. Ví dụ, trước tiên, chọn Apple và sau đó chọn chuối.

Bạn sẽ nhận thấy rằng phải mất một giây (đôi khi hai giây) và sau đó sẽ cho bạn thấy cả hai mục được chọn (cách nhau bằng dấu phẩy).

Lưu ý: Bạn sẽ thấy một tam giác đỏ ở phần trên cùng bên phải của ô. Nó có thể trông giống như một lỗi (nó là giá trị bạn có trong ô không phải là những gì nó mong đợi). Bạn có thể bỏ qua điều này một cách an toàn.

Cũng lưu ý rằng với mã này, nó sẽ cho phép bạn chọn cùng một mục hai lần. Ví dụ: nếu bạn chọn Apple và sau đó chọn Apple một lần nữa, nó sẽ hiển thị hai lần trong ô.

Nếu bạn muốn tạo một danh sách thả xuống cho phép nhiều lựa chọn mà không cần lặp lại, tôi đã cung cấp mã sau trong hướng dẫn này.

Mã hoạt động như thế nào?

Hãy để cố gắng hiểu phần mã này từng phần.

Mã bắt đầu với dòng

function onEdit(e)

OneDit () là một chức năng đặc biệt trên Google Sheets. Nó còn được gọi là một người xử lý sự kiện. Hàm này được kích hoạt mỗi khi có một sự thay đổi trong bảng tính của bạn.

Chúng tôi muốn nhiều mã lựa chọn của chúng tôi chạy mỗi khi một mục được chọn từ danh sách thả xuống, vì vậy thật hợp lý khi đặt mã của chúng tôi vào hàm OneDit ().

Bây giờ, AppScript chuyển chức năng này dưới dạng đối tượng sự kiện như một đối số. Thông thường, đối tượng sự kiện được gọi là e. Đối tượng sự kiện này chứa thông tin về sự kiện được kích hoạt.

Nếu bạn biết những điều cơ bản của AppScript, bạn sẽ thấy bốn dòng đầu tiên khá dễ hiểu:

var oldValue;
var newValue;
var ss=SpreadsheetApp.getActiveSpreadsheet();
var activeCell = ss.getActiveCell();

Tôi đã tuyên bố hai biến - một (OldValue) sẽ giữ giá trị cũ của ô và một biến khác (NewValue) sẽ giữ giá trị mới của ô.

Biến ActiveCell sẽ giữ tế bào hiện đang hoạt động đã được chỉnh sửa.

Bây giờ, chúng tôi không muốn mã chạy mỗi khi bất kỳ ô nào được chỉnh sửa. Chúng tôi chỉ muốn nó chạy khi CAL CA1 của Sheet1 được chỉnh sửa. Vì vậy, chúng tôi đảm bảo điều đó bằng cách sử dụng câu lệnh IF:

if(activeCell.getColumn() == 3 && activeCell.getRow() == 1 && ss.getActiveSheet().getName()=="Sheet1")

Mã trên kiểm tra hàng và số cột của ô hoạt động và tên trang tính. Vì việc thả xuống là trong ô C1, nó sẽ kiểm tra xem số hàng có phải là 1 hoặc không và liệu số cột là 3 hay không.

Chỉ khi tất cả ba điều kiện này được đáp ứng, mã trong câu lệnh IF được thực thi.

Dưới đây là mã được thực thi khi chúng tôi ở đúng ô (C1 trong ví dụ của chúng tôi)

newValue=e.value;
oldValue=e.oldValue;

E.ASTVALUE cũng là một tài sản của đối tượng sự kiện, e. Điều này giữ giá trị trước đó của ô hoạt động. Trong trường hợp của chúng tôi, đây sẽ là giá trị trước khi chúng tôi thực hiện lựa chọn thả xuống

Chúng tôi muốn gán điều này cho biến số cũ.

E.Value là một thuộc tính của đối tượng sự kiện, e. Điều này giữ giá trị hiện tại của ô hoạt động. Chúng tôi muốn gán điều này cho biến NewValue biến.

Đầu tiên, chúng ta hãy xem xét những gì xảy ra nếu không có tùy chọn nào được chọn. Trong trường hợp đó, E.Value sẽ không được xác định. Khi điều này xảy ra, chúng tôi không muốn bất cứ điều gì được hiển thị trong ô A1. Vì vậy, chúng tôi đặt một giá trị trống trên ô.

Đây cũng sẽ là trường hợp nếu người dùng quyết định xóa tất cả các lựa chọn trước đó và khởi động lại từ đầu.

if(!e.value) {
activeCell.setValue("");
}

Nếu người dùng chọn một tùy chọn, thì các dòng sau câu lệnh khác sẽ được thực thi. Bây giờ chúng tôi muốn chỉ định những việc cần làm nếu một tùy chọn được chọn lần đầu tiên từ danh sách thả xuống.

Điều đó có nghĩa là e.oldvalue là không xác định. Khi điều này xảy ra, chúng tôi chỉ muốn tùy chọn đã chọn (NewValue) được hiển thị trong ô A1.

if (!e.oldValue) {
activeCell.setValue(newValue);

Cuối cùng, chúng tôi chỉ định những gì cần làm trong lần tiếp theo trở lại rằng một tùy chọn được chọn. Điều đó có nghĩa là khi cả E.Value và E.oldValue giữ các giá trị cụ thể.

Values       | Codes
-------------------
Large,Small  | L,S
XLarge,Small | XL,S
XLarge,large | XL,L
0

Khi bạn là một gõ mã, hãy lưu nó và sau đó thử thực hiện nhiều lựa chọn từ danh sách thả xuống của bạn. Bạn sẽ tìm thấy tất cả các tùy chọn đã chọn của bạn được hiển thị từng cái một, được phân tách bằng dấu phẩy.

Nếu bạn mắc lỗi, bạn luôn có thể xóa ô và bắt đầu lại. Khi điều này xảy ra, chúng tôi muốn hiển thị cả các giá trị trước đó và giá trị mới được chọn trong ô A1, tất cả được phân tách bằng dấu phẩy.

Lưu ý: Khi bạn sử dụng mã trên, nó sẽ không cho phép bạn quay lại và chỉnh sửa một phần của chuỗi. Ví dụ: nếu bạn muốn chỉnh sửa thủ công chuỗi vật phẩm hoặc muốn xóa một phần của nó, bạn đã giành chiến thắng để có thể làm điều này. Bạn sẽ phải xóa tất cả nội dung di động và bắt đầu lại nếu bạn muốn thực hiện bất kỳ thay đổi nào.

Tuy nhiên, có một vấn đề nhỏ với điều này. Lưu ý rằng nếu bạn chọn một mục nhiều hơn một lần, nó sẽ lại được nhập vào danh sách các lựa chọn của bạn. Nói cách khác, sự lặp lại được cho phép. Nhưng thông thường, chúng tôi không muốn điều đó.

Dưới đây, tôi đã cung cấp chi tiết về cách bạn có thể thay đổi mã của mình để đảm bảo một mục chỉ có thể được chọn một lần để không có sự lặp lại.

Cho phép nhiều lựa chọn trong danh sách thả xuống (không lặp lại)

Dưới đây là mã sẽ cho phép nhiều lựa chọn trong việc thả xuống mà không cần lặp lại.

Values       | Codes
-------------------
Large,Small  | L,S
XLarge,Small | XL,S
XLarge,large | XL,L
1

Trong mã trên, tôi lại sử dụng ô C1 trong bảng tính bảng1 làm ví dụ. Trong trường hợp thả xuống của bạn nằm trong một ô khác (hoặc tờ), bạn cần điều chỉnh mã cho phù hợp.

Phần dưới đây của mã giúp chúng tôi có thể bỏ qua bất kỳ giá trị lặp lại nào trong việc thả xuống:

Values       | Codes
-------------------
Large,Small  | L,S
XLarge,Small | XL,S
XLarge,large | XL,L
2

Hàm indexof () ở đây kiểm tra xem chuỗi trong OldValue có chứa chuỗi trong newValue không.

Nếu có, thì nó sẽ trả về chỉ số của chuỗi trong OldValue. Nếu không, nó sẽ trả về một giá trị nhỏ hơn 0.

Nếu tùy chọn mới được chọn tồn tại trong danh sách của chúng tôi, chúng tôi muốn rời khỏi danh sách như vậy (vì vậy chúng tôi đặt ô C1 với giá trị trước đó). Nếu không, thì chúng tôi muốn thêm tùy chọn mới được chọn vào danh sách bằng dấu phẩy (‘,,) và hiển thị nó trong ô C1.

Nhiều lựa chọn trong thả xuống (toàn bộ cột hoặc nhiều ô)

Trong các ví dụ trên, tôi đã chỉ cho bạn cách thả xuống đa lựa chọn trong một ô.

Nhưng điều gì sẽ xảy ra nếu bạn muốn có được điều này trong toàn bộ cột hoặc nhiều ô.

Bạn có thể dễ dàng hoàn thành việc này với một số sửa đổi nhỏ trong mã.

Nếu bạn muốn thả xuống để cho phép chọn nhiều mục trong toàn bộ cột C, bạn cần thay thế dòng mã sau:

if(activeCell.getColumn() == 3 && activeCell.getRow() == 1 && ss.getActiveSheet().getName()=="Sheet1")

với dòng mã sau:

Values       | Codes
-------------------
Large,Small  | L,S
XLarge,Small | XL,S
XLarge,large | XL,L
4

Khi bạn làm điều này, chúng tôi chỉ kiểm tra xem cột có phải là 3 hay không. Bất kỳ ô nào trong Sheet1 và trong cột 3 sẽ đáp ứng điều này nếu các tiêu chí và có bất kỳ việc thả xuống nào trong đó sẽ cho phép nhiều lựa chọn.

Tương tự, nếu bạn muốn điều này có sẵn cho toàn bộ cột C và F, hãy sử dụng dòng dưới đây thay thế:

Values       | Codes
-------------------
Large,Small  | L,S
XLarge,Small | XL,S
XLarge,large | XL,L
5

Dòng trên sử dụng một hoặc điều kiện trong câu lệnh IF trong đó nó kiểm tra xem số cột là 3 hoặc 6. Trong trường hợp một ô có thả xuống trong cột C hoặc F, nhiều lựa chọn sẽ được bật.

Tương tự, nếu bạn muốn điều này được bật cho nhiều ô, bạn cũng có thể làm điều đó bằng cách sửa đổi mã.

Vì vậy, đây là cách bạn có thể kích hoạt nhiều lựa chọn trong việc thả xuống Google Sheets. Mặc dù điều này không có sẵn như một tính năng được xây dựng, bạn có thể dễ dàng thực hiện điều này với một số phép thuật của Google Apps Script.

Hy vọng bạn tìm thấy hướng dẫn này hữu ích!

Các hướng dẫn khác của Google Sheets Bạn có thể thấy hữu ích:

  • Cách áp dụng công thức cho toàn bộ cột trong Google Sheets
  • Cách kết hợp các ô trong Google Sheets (sử dụng các công thức đơn giản)

Làm cách nào để đặt nhiều tên trong một ô trong Google Sheets?

Rất may, bạn có thể - nhập thông tin vào nhiều dòng trong ô Google Sheets, nhấp vào ô được đề cập và nhập dòng đầu tiên của nội dung của bạn. Bạn sử dụng máy Mac) để đến một dòng mới.click on the cell in question and type the first line of your content in. Then, press Alt + Enter on your keyboard (or Option + Enter if you use a Mac) to get to a new line.

Làm thế nào để bạn kết hợp 3 giá trị trong Google Sheets?

Để sử dụng Concat trong Google Sheets, trước tiên bạn cần chọn các ô hoặc phạm vi các ô mà bạn muốn kết nối.Sau đó, chuyển đến tab "Công thức" và chọn "Concatenate" từ phần "Văn bản".Điều này sẽ mở một hộp thoại mới trong đó bạn có thể nhập các ô hoặc phạm vi các ô mà bạn muốn kết nối.go to the "Formulas" tab and select "CONCATENATE" from the "Text" section. This will open a new dialog box in which you can input the cells or ranges of cells that you want to concatenate.

Bạn có thể chia dữ liệu trong một ô trong Google Sheets không?

Trong Google Sheets, nếu bạn có văn bản được phân tách bằng dấu phẩy (còn được gọi là dữ liệu được phân định), bạn có thể chia nó thành các cột.Nếu dữ liệu của bạn ở định dạng chiều rộng cố định, các tờ tự động phát hiện điều đó và chia dữ liệu thành các cột thích hợp.if you have comma-separated text (also known as delimited data), you can split it into columns. If your data is in fixed-width format, Sheets automatically detects that and splits the data into appropriate columns.

Bạn có thể lập danh sách trong một ô trong Google Sheets không?

Có hai cách để thêm một điểm đạn vào một tế bào trong các tấm.Bạn cũng có thể theo dõi với Alt + Enter để chèn một đường ngắt nếu bạn muốn thêm nhiều điểm đạn bên trong cùng một ô.Thực hiện theo điều khiển + Tùy chọn + Enter để chèn ngắt dòng.. You can also follow with ALT + ENTER to insert a line break if you wish to add multiple bullet points inside the same cell. Follow with CONTROL + OPTION + ENTER to insert a line break.