![](/img/trans.png)
[英]How can I auto-populate a range from another tab based on a Data Validation selection in Google Sheets?
[英]Google Sheets - Data validation from a horizontal range
我正在嘗試做一些看起來足夠直接的事情。 在單元格 ( D15
) 驗證規則中,我想選擇List from a range
並指定水平范圍而不是垂直范圍。 請參閱以下不言自明的屏幕截圖。
但是,這不起作用。 下拉列表僅顯示給定范圍第一列的數據。 請參閱下面的屏幕截圖。
我怎樣才能使這項工作? 我希望在下拉列表中看到 - 貓、老鼠、獅子和鹿。
PS:在列表中垂直排列我想要的項目不是一種選擇。
解決方案原則上與@Marios 接受的答案類似,我在這里找到了針對我的確切用例的解決方案。 不幸的是,AppScript 似乎是唯一的答案。
這似乎是桌面網絡應用程序中的一個錯誤:
F3
)和一個開放式( 3
)范圍( F3:3
)。 如果兩端都是
3:3
: 數據驗證成功F3:M3
: 數據驗證成功F3:3
。 這實際上應該計算 lastColumn 並相應地輸入范圍。 但是,數據驗證輸入對話框刪除了開放端並將輸入保存為F3
。 這會導致只有一個單元格下拉,如您的問題所示。F3:3
進入數據驗證配置(例如通過官方移動應用程序或腳本),則數據驗證設置正確。下面的Google Apps Script解決方案怎么樣。
以下代碼將在單元格D15 中創建數據驗證,數據驗證值由范圍E15:H15 給出:
function setDataValidation() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getActiveSheet();
var cell = sh.getRange('D15'); // data validation cell
var range = sh.getRange('E15:H15'); // range of options
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(range).build();
cell.setDataValidation(rule);
}
我知道您想水平顯示這些值,因此不能選擇在該工作表中垂直排列它們,但是您可以在其他地方這樣做嗎?
在這種情況下,我更喜歡至少有一個其他工作表,我可以在其中列出輸入值——讓我們稱該工作表為“輸入”。 在每一列中,我可以手動列出值或使用一些公式來手動填充它(例如=TRANSPOSE('Dynamic Brands'!E15:15)
)。 現在我可以在數據驗證中使用這個新范圍。
或者,您可以使用行數據構建數據驗證,但沒有“在單元格中顯示下拉列表”功能。 將您的標准更改為自定義公式並使用此公式=ISNUMBER(MATCH('Dynamic Brands'!D15, 'Dynamic Brands'!E15:15, 0))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.