我有一个Excel公式从列中读取数据.该列中的数据有时是类似日期的格式,例如"10-11".尽管我确保列是文本格式的 - 并且所有值都以纯文本形式显示,而不是重新解释为日期 - 但公式基本上将它们重新解释为引用中的日期.
我需要一种方法来强制公式的单元格引用将单元格解释为文本.我试过TEXT(A1,"@"),但它不起作用 - 它给出了日期的数值.
我目前有一个类似于以下的excel工作表(#代表空白单元格)
1 2 3 4 5 6 7
37 21 30 32 25 22 34
# 17 26 28 27 17 31
# # # # # # 38
25 23 27 35 33 # #
27 11 23 # # # #
Run Code Online (Sandbox Code Playgroud)
在第8列中,我需要最后3个非空白单元格的总和(列数经常增加).
我需要实现的一个例子如下:
1 2 3 4 5 6 7 8
37 21 30 32 25 22 34 25+22+34=81
# 17 26 28 27 17 31 27+17+31=75
# # # # # # 38 N/A
25 …
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个电子表格,根据他们的分数自动为学生提供成绩.
我显然已经达到Excel的嵌套IF语句限制,即7.
这是我的if语句:
=IF(O5>0.895,"A+",IF(O5>0.845,"A",IF(O5>0.795,"A-",IF(O5>0.745,"B+",IF(O5>0.695,"B",IF(O5>0.645,"B-",IF(O5>0.595,"C+",IF(O5>0.545,"C","D"))))))))
Run Code Online (Sandbox Code Playgroud)
我在网上看到我可以创建一个VBA脚本然后分配它,但我对VBA一无所知....所以如果有人可以帮我写一个VBA,那就太棒了.
它仍然缺少C级和任何低级应该被授予D标记.
这是我试图创建的评分方案......:
A + 89.500 - 100.000通过优异
84.500 - 89.490优异传球
A- 79.500 - 84.490优异成绩
B + 74.500 - 79.490优异通行证
B 69.500 - 74.490优异成绩
B- 64.500 - 69.490优异成绩
C + 59.500 - 64.490通过
C 54.500 - 59.490通行证
C- 49.500 - 54.490通过
D 0.000 - 49.490指定失败
我不介意去VBA路线,但是我对VB语言的理解绝对是最小的(不喜欢它)...如果这太繁琐了,我想创建一个小的php/mysql应用程序.
我想使用AVERAGE函数,但是当我有一个恰好是标签的引用单元格时,我得到#VALUE作为输出.
我附上了我想要做的代码示例代码:
String filename = "C:\\input.xls";
WorkbookSettings ws = new WorkbookSettings();
ws.setLocale(new Locale("en", "EN"));
WritableWorkbook workbook = Workbook.createWorkbook(new File(filename), ws);
WritableSheet s1 = workbook.createSheet("Output", 0);
s1.addCell(new Number(1,2,6));
s1.addCell(new Number(3, 1, 6));
s1.addCell(new Number(3, 2, 1));
s1.addCell(new Number(3, 3, 6));
s1.addCell(new Label(3, 4, ""));
Formula formula = new
Formula(3,5,"AVERAGE(Output!D1,Output!D2,Output!D3,Output!D4,Output!D5)");
s1.addCell(formula);
workbook.write();
workbook.close();
Run Code Online (Sandbox Code Playgroud)
因为AVG值会改变,所以我无法将空单元格转换为0.
JAR使用
JXL-2.6.jar
实时而不是Label,将根据公式使用该值
IF(一些-于小区的参考= "", "",一些 - 值)
然而; 当我尝试使用键F2编辑单元格时,它会更改其执行计划并获得正确的输出.
有没有解决方案....
预期的解决方案:
要使单元格为空,但更改单元格格式,以便不返回#VALUE.
这篇文章略有关系
我希望能够基于行/列变量在Excel中动态指定范围.
假设我的文件内容看起来像这样:
A B C D E 1 10 11 12 13 14 2 51 52 53 54 55
如果我想对第1行第2-4列(即11 + 12 + 13)中的项目求和,我该如何指定?
如果我是手工做的,我会输入:
=SUM(B1:D1)
Run Code Online (Sandbox Code Playgroud)
...但是我如何在运行中以编程方式生成该范围定义,只知道所需的行(1)和列号(2-4)?
=SUM(????)
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助!
(我正在使用Microsoft Excel 2011 for Mac,因此Excel VBA /基于宏的解决方案对我不起作用.)
有没有办法在Excel中获取比单元格工作表函数中的起始数组更小的数组?
所以,如果我有:
{23, "", 34, 46, "", "16"}
Run Code Online (Sandbox Code Playgroud)
我最终得到:
{23, 34, 46, 16}
Run Code Online (Sandbox Code Playgroud)
然后,我可以使用其他一些功能进行操作.
结论:如果我要做很多这些,我肯定会使用jtolle的UDF梳子解决方案.PPC使用的公式很接近,但潜入并测试,我发现它在空插槽中出错,错过了第一个值,并且有更简单的方法来获取行号,所以这是我的最终解决方案:
=IFERROR(INDEX($A$1:$A$6, SMALL(IF(($A$1:$A$6<>""),ROW($A$1:$A$6)),ROW(1:6))),"")
Run Code Online (Sandbox Code Playgroud)
必须以数组公式(CTRL-SHIFT-ENTER)输入.如果显示,则必须至少输入与结果集一样大的区域以显示所有结果.
我正在尝试使用EPPLUS 4.0.3打开一个XLSX文件作为模板(我甚至使用了一个空白的XLSX文件).
如果我不打开模板文件(空白或真实的),只需创建一个新工作簿并创建一个工作表,它就可以正常工作.或者如果我打开模板文件,并创建一个新的工作表,那么它工作正常.只有当我尝试访问模板中的FIRST工作表时才会出现错误:工作表位置超出范围.
像这样访问第一个工作表:workBook.Worksheets.First()
不工作.
首先不再是定义.
因此,我尝试按名称访问第一个工作表,并使用此方法同时workBook.Worksheets[1]
使用0和1来尝试获取第一个工作表.
我的代码:
var existingTemplate = new FileInfo(_ExcelTemplateFilePath);
using (ExcelPackage p = new ExcelPackage(existingTemplate)) {
// Get the work book in the file
ExcelWorkbook workBook = p.Workbook;
ExcelWorksheet ws = workBook.Worksheets[1];
// MY OTHER EXCEL CELL CODE HERE
}}
Run Code Online (Sandbox Code Playgroud)
有谁知道如何访问第一张和Excel文件?
我有一个从另一个数据库导出到excel的名称列表.列表中感兴趣的名称以红色字体突出显示.我想要一种计算它的方法,即约翰史密斯在一列中总共出现5次,但在5次中出现3次,他的名字以红色字体突出显示.所以我想看看他的名字有多少个实例出现红色.
我知道如何搜索他名字的所有实例,例如= COUNTIF(A1:A100,"John Smith")
我还帮助创建了一个VB函数,它通过使用这个来计算工作表中所有红色值(= SumRed)(一旦指定了颜色索引):
Function SumRed(MyRange As Range)
SumRed = 0
For Each cell In MyRange
If cell.Font.Color = 255 Then
SumRed = SumRed + cell.Value
End If
Next cell
End Function
Run Code Online (Sandbox Code Playgroud)
我只是找不到结合两种计数条件的方法.任何帮助将非常感激!
我在vba中开发了下一个userform,它从工作表中获取信息以显示信息
我想通过Segment以字母方式订购所有信息,这是代码:
Function llenarDatosTabla()
Dim vList As Variant
Dim ws As Worksheet: Set ws = Worksheets(BD_PRODXSIST)
ListBox1.Clear
With ws
If (IsEmpty(.Range("AA2").Value) = False) Then
Dim ultimoRenglon As Long: ultimoRenglon = devolverUltimoRenglonDeColumna("A1", BD_PRODXSIST)
vList = ws.Range("AA2:AA" & ultimoRenglon & ":AL2").Value
If IsArray(vList) Then
Me.ListBox1.List = vList
Else
Me.ListBox1.AddItem (vList)
End If
End If
Me.ListBox1.ListIndex = -1
End With
Set vList = Nothing
Set ws = Nothing
End Function
Run Code Online (Sandbox Code Playgroud)
如何通过'AD'(SEGMENTO)专栏订购???
在Excel中,具有以下功能:
=IF(AND(N3=1,ISNUMBER(D3),ISNUMBER(E3)),SUM(D3:E3)-2,IF(AND(N3=1,D3="",E3=""),G3,IF(N3=1,"",IF(AND(N3=0,ISNUMBER(D3)),D3-1,IF(AND(N3=0,ISNUMBER(E3)),E3-1,IF(AND(N3=0,D3="",E3=""),G3,IF(N3="","",G3)))))))
Run Code Online (Sandbox Code Playgroud)
我收到错误:
公式省略了相邻的单元格
如何修复公式以避免出错?