我在列的第一行有 public static class GeneralPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref_general);
setHasOptionsMenu(true);
// Bind the summaries of EditText/List/Dialog/Ringtone preferences
// to their values. When their values change, their summaries are
// updated to reflect the new value, per the Android Design
// guidelines.
bindPreferenceSummaryToValue(findPreference("your_key"));
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
getActivity().onBackPressed();
}
return super.onOptionsItemSelected(item);
}
}
,因此我的值和计算可以从第2行开始,也可以从列长度开始。
我遇到这种情况:
https://docs.google.com/spreadsheets/d/11oDra7Vja4-5C0Uix7JTgLLSMG3gPj-6fkajXlWqqQk/edit?usp=sharing
我需要一个简单的算术运算:
为每一行减去同一列的上述值。
我正在使用:
arrayformula
但是你看错了。
怎么做?
更新的问题:
然后在第二张表格中,我需要一个SUM操作,列中包含一些空白单元格:
怎么做?
答案 0 :(得分:1)
如果你想让数组公式离开标题,这有点奇怪,因为你需要允许公式在技术上访问第0行,我们可以通过构造范围来实现。
=ArrayFormula(IF(
--(ROW(A1:A) > 2) + -ISBLANK(A1:A) = 1;
{0; A1:A} - {0; A2:A; 0};
""))
--(ROW(A1:A) > 2) + -ISBLANK(A1:A) = 1
检查行是否已填充,而不是以与数组公式配合良好的方式排在前两行之一
{0; A1:A} - {0; A2:A; 0}
执行以下操作:
0 Data 156 123 110 95 42
- - - - - - -
0 156 123 110 95 42 0
= = = = = = =
0 33 13 15 53 42 42
N N Y Y Y Y N <- Is shown
^ ^ ^
| | Because Row is blank
| |
Because row not > 2, thus it is never evalauated even though the second would cause an error
答案 1 :(得分:1)
我觉得这很棘手。问题是在数组公式中,每个数组中的单元格数必须匹配 - 如果它们一直到电子表格的底部,则不能将从第1行开始的数组与从第2行开始的数组混合。 / p>
这是获得所需结果的一种方法
=arrayformula({"What I need";"";offset($A$1,1,0,count(A:A)-1)-offset($A$1,2,0,count(A:A)-1)})
你需要改变;而且,对于您的语言环境。
我使用{}表示法构建了一个数组来定义元素。在我的地方a;意味着转到下一行,所以我将前两个单元格直接定义为字符串。之后我选择使用偏移来获得范围A2:A5(从A1向下1行,0行和4个单元格高)并减去范围A3:A6(从A1向下2行,向下0行和4行)细胞高)它给我另外4个细胞。
B1 "What I need"
B2 ""
B3 A3-A2=33
B4 A4-A3=13
B5 A5-A4=15
B6 A6-A5=53
但如果数字之间有任何空白单元格,则需要添加IF语句。
在您更新的问题的特定情况下,D列中的数字少于C列,公式将为
=arrayformula({"Special Case";"";offset($D$1,1,0,count(D:D))+offset($C$1,2,0,count(D:D))})
但是在一般情况下,任何地方都有空白单元格,你必须测试一切
=arrayformula({"General Case";"";if(offset($D$1,1,0,rows(C:C)-2)="","",if(offset($C$1,2,0,Rows(C:C)-2)="","",offset($D$1,1,0,rows(C:C)-2)+offset($C$1,2,0,Rows(C:C)-2)))})