[英]Google Sheets SORTN function has mismatched range sizes even though same function is used to calculate filter and counta
我一直在嘗試創建一個函數來獲取具有兩個條件的隨機數組,但運氣不佳。
A3 是第一個條件(下拉值:Todos,Objeto,Local,Característica,Animal),B3 是第二個條件(下拉值:Todos,Sobrenome,Taverna,Loja Mágica)。 這兩個條件都調用帶有數據的第二個選項卡。
例如,當 A3 為“Todos”且 B3 為“Objeto”或 A3 為“動物”且 B3 為“Taverna”時,我的函數有效。
但是,當 A3 和 B3 都是“Todos”時,我的函數返回“#N/A”並讀取“SORTN 的范圍大小不匹配。預期行數:999。列數:1。實際行數:148,列數:1 .”
這個函數很大,有幾個 IF 嵌套。 這是我認為問題所在的縮短版本:
=SORTN(
IF(
AND($A$3="Todos";$B$3="Todos");
FILTER(Substantivos!$A$2:$A;Substantivos!$C$2:$C<>$A$3;Substantivos!$E$2:$E<>$A$3;Substantivos!$F$2:$F<>$A$3;Substantivos!$G$2:$G<>$A$3)
)
;10;0;ARRAY_CONSTRAIN(RANDBETWEEN(ROW(Substantivos!$A$2:$A)^1;10000);COUNTA(
IF(
AND($A$3="Todos";$B$3="Todos");
FILTER(Substantivos!$A$2:$A;Substantivos!$C$2:$C<>$A$3;Substantivos!$E$2:$E<>$A$3;Substantivos!$F$2:$F<>$A$3;Substantivos!$G$2:$G<>$A$3)
)
);1);1)
我還准備了一個包含我的一些數據的虛擬表: 單擊此處。
在我忘記之前,我使用分號作為函數分隔符。
謝謝!
用:
=ARRAYFORMULA(QUERY(SPLIT(QUERY(FLATTEN(IF(Substantivos!E2:G="";;
Substantivos!A2:A&"×"&PROPER(Substantivos!C2:C)&" Todos×"&PROPER(Substantivos!E1:G1)&" Todos×"&
RANDARRAY(ROWS(Substantivos!A2:A))*RANDARRAY(1; COLUMNS(Substantivos!E1:G1))));
"where Col1 is not null"); "×");
"select Col1
where Col2 contains '"&A3&"'
and Col3 contains '"&B3&"'
order by Col4
limit 10"; 0))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.