Tìm kiếm một công thức của is is is is


13

Có một hàm sẽ cho biết một ô cụ thể có giá trị đơn giản (được nhập thủ công) hay có công thức không?

Câu trả lời:


5

Với đoạn trích nhỏ này bạn có thể làm điều đó.

function isFormula(startcol, startrow) {
  // prepare string
  var str = String.fromCharCode(64 + startcol) + startrow;

  // retrieve formula
  var fCell = SpreadsheetApp.getActiveSpreadsheet()
    .getRange(str).getFormula();

  // return false if empty else true 
  return fCell ? true : false;
}

Sử dụng

nhập mô tả hình ảnh ở đây

Trong câu trả lời này , Tom Horwood đã tìm ra cách để tránh việc sử dụng dấu ngoặc kép.

Thí dụ

Thêm tập lệnh trong Công cụ> Trình chỉnh sửa tập lệnh và nhấn nút lỗi để kích hoạt xác thực.

Tôi đã tạo một tệp ví dụ cho bạn: Kiểm tra Công thức


Tôi đã đi lang thang ... Chức năng của bạn thực sự nhận được một chuỗi là địa chỉ của một ô isFormula2("A1"). Vì vậy, tôi đã cố gắng tạo ra một phiên bản mới của nó như thế này: function isFormula2(cell) { return (cell.getFormula())!=""; } và tôi hy vọng nó có thể gọi được bằng cách sử dụng isFormula2(A1)nhưng điều này dường như không hoạt động và khi cố gắng gỡ lỗi, nó hiển thị cellnhư không xác định ... mọi ý tưởng tại sao lại như vậy và nếu mọi thứ có thể thay đổi để nó sẽ làm việc với f(A1)thay vì f("A1")?
epeleg

@epeleg Xem câu trả lời sửa đổi của tôi.
Jacob Jan Tuinstra

:) vì vậy bạn đã thay đổi nó để thay vì nhận địa chỉ, bây giờ nó có một cột và hàng. ở đây không có cú pháp sao cho cuộc gọi sẽ chỉ là isFormula(a1)? (trong MS excel, nó sẽ là một hàm có tham số phạm vi)
epeleg

@epeleg Gần nhất làFormula_1 ("A2: A2") , hãy xem tệp ví dụ của tôi. Chức năng tùy chỉnh hoạt động theo cách đó. Nếu không có dấu ngoặc kép, bạn sẽ nhận được giá trị. Với trích dẫn chuỗi, có thể được sử dụng như vậy, nhưng không thể sao chép / dán. Giải pháp COLUMN và ROW chỉ là một công việc (chắc chắn).
Jacob Jan Tuinstra

giá trị mà hàm tùy chỉnh sẽ nhận được là gì nếu bạn gọi nó bằng isFormula (a1: a1)? và còn isFormula (a1: b2) thì sao?
epeleg

9

Câu trả lời ngắn

Sử dụng hàm tích hợp ISFORMULA () .

Bối cảnh và giải thích

Tôi nghĩ rằng tôi vừa phát hiện ra một công thức không có giấy tờ trong Google Sheets mới. @Pnuts đã nói rằng CELLcông thức không hoạt động (một phần vì nó chỉ có sẵn trong Google Sheets mới), vì vậy tôi đã sao chép mã vào Google Sheet mới. Một lỗi đã được nêu ra, cho tôi biết công thức (tùy chỉnh) của tôi chỉ chấp nhận một đối số chứ không phải hai đối số:
nhập mô tả hình ảnh ở đây

Đổi tên isFormulathành một cái gì đó khác, dẫn đến một chức năng tùy chỉnh làm việc. Sau đó, tôi đã tạo một Google Sheet khác và sử dụng isFormulacông thức. Công thức không xuất hiện trong tự động hoàn thành, nhưng nó đang hoạt động:
nhập mô tả hình ảnh ở đây

Vì vậy, nếu công thức có sẵn trên Google Sheets mới, thì đây sẽ là câu trả lời tốt nhất:

Công thức

=isFormula(A1)

Ghi chú

Chỉ có sẵn trong Google Sheets mới. Tôi đã hỏi một vài người khác để xác nhận công thức mới và nó đã được xác nhận. Vì nó không có giấy tờ, việc thực hiện nó không chắc chắn và nó có thể biến mất. Các ARRAYFORMULAkhông hoạt động khi sử dụng với công thức mới này.

Thí dụ

Tôi đã tạo một tệp ví dụ cho bạn: isFormula


đẹp. có vẻ như Google đang chấp nhận đề xuất của tôi :) Nhưng làm cách nào để chuyển sang "Google Sheets mới"?
epeleg

hấp dẫn. nó hoạt động cho tài khoản gmail của tôi nhưng không phải trong tài khoản ứng dụng google của tôi ...
epeleg

2
ISFORMULA () hiện được ghi lại. Xem support.google.com.vn/docsfurt/6270316?hl=vi
Rubén

2

Có vẻ như có một chức năng tích hợp ẩn ISFORMULA()từ Google. Tôi nhận ra khi tôi xóa chức năng của mình và vẫn đang làm việc. Tôi đã thử nó trong một bảng tính mới và vẫn hoạt động. Không có vấn đề bộ nhớ cache.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.