Tag: 转置

将行整理,整理并转换为列

我有下面的表格 Id Letter 1001 A 1001 H 1001 H 1001 H 1001 B 1001 H 1001 H 1001 H 1001 H 1001 H 1001 H 1001 A 1001 H 1001 H 1001 H 1001 B 1001 A 1001 H 1001 H 1001 H 1001 B 1001 B 1001 H 1001 H 1001 H 1001 B […]

将重复的行转移到Excel中的列

我抓取了一些基于URL的名称数据,生成的电子表格如下所示: 正如您所看到的,具有多个名称的URL将被转换为多行。 我想将这些重复的URL转换为列,如下所示: 有人知道我怎么能做到这一点? 我读过类似的线程,提示macros,但似乎这不是一个完全不寻常的问题,所以我期望像谷歌精炼的Excel本身有一个function或公式可以满足? 我将不胜感激任何帮助或input。

Excelmacros将特定的单元格从一行转置到另一列

我正在处理来自图像分析软件的数据,该软件以下列方式输出数据: 在每种情况下,两个空行将图像名称与放置在图像本身上的不同注释区分开来。 下一个图像与最后一个注释由三个空行分开。 所有的注释都以它们的编号来表示,包括一个测量,它的单位和一个关于它是哪种测量的注释。 但是,这种configuration是不实际的。 如果以这种方式显示,pipe理数据会容易得多: 以“Annotation”,“Comment”,“Value”和“Unit”作为标题的表格的forms,以及在同一行中的注释的所有信息。 到目前为止,我试图手动调换数据,但是当涉及到许多图像时,这会花费太长时间。 我也尝试使用macroslogging器来自动执行这个过程,但是它不起作用,因为它在工作表中使用了固定位置。 而且,所有图像都不具有相同数量的注释。 任何人都可以帮我创build一个macros来做这样的事情吗? 最近我开始涉足VBA代码,但是这是我的联盟。

涉及一行的TRANSPOSE的matrix乘法

我正在使用Excel 2010.我的例子是在电子表格A1中有A1; B1中1 ,D1中1 ; 2在D2。 当我乘以一列的行,一切工作正常: =MMULT(A1:B1,D1:D2) 如果我使用TRANSPOSE函数来自行乘一行,并把答案放在一个单元格中,它会扼住(说#VALUE! ): =MMULT(A1:B1,TRANSPOSE(A1:B1)) 这似乎是因为它想要两次产生相同的答案。 select两个单元格,在顶部input公式,然后用CTRL-SHIFT-ENTER(将大括号添加到公式中)将它们链接两次,得到正确的答案: 出于好奇,我尝试了=MMULT(A1:B1,TRANSPOSE(TRANSPOSE(D1:D2))) 。 它也想重复这个答案。 (所有五个例子的截图都在这里) 虽然我意识到我可以将复制的答案复制到一个废品区,然后从那里收集一个单元格,这似乎有点混乱。 更重要的是,我担心matrix函数链接Excel时是否会发生其他奇怪的事情。 有没有办法抑制重复,所以把一行一行乘一个答案,还是我误解了一切?

转置arrays和自动填充

我正在寻找一种更有效的,不太硬编码的方式来转置一个数组,然后在相邻列中自动填充公式。 这里是我目前的代码转置我的数组在表单上的特定点和自动填充列: If Len(Join(myArray)) > 0 Then ActiveWorkbook.Sheets("Delta Summary").Range("A3:A" & UBound(myArray) + 2) = WorksheetFunction.Transpose(myArray) ActiveWorkbook.Sheets("Delta Summary").Range("B3").Select Range(Selection, Selection.End(xlToRight)).Select Selection.AutoFill Destination:=Range("B3:K17"), Type:=xlFillDefault Else: End If 我们的目标是在表单“Delta Summary”中转换单元格A3中的数组。 我的代码完成了这一点,但我想知道是否有更好的方法来做到这一点。 作为参考,我循环这个数组并根据不同的标准转置几次。 我将从arraysA3,A20,A37,…和A224开始的arrays转置。 每个部分有15个单元格分配给数据。 至于自动填充,我想自动填充公式列B:K到列A的最后填充的单元格为该预定义的范围(如A3:A17,A20:34,等等)。 我不知道如何find最后一个预先定义的范围的填充单元格,所以我有这个硬编码。 我还在学习,所以任何有识之士将不胜感激! 编辑:这是我用来填充我的数组的循环标准的一个例子: ReDim myArray(0) For i = 1 To LastCurrID If ActiveWorkbook.Sheets("Weekly Comparison").Range("N" & i) = "N" And ActiveWorkbook.Sheets("Weekly Comparison").Range("J" & i) […]

将多个值列转换为新的键值对

我需要转换.csv文件的内容 continent, region, country, 1990, 1991, 1992, 1993, … Africa, East Africa, Ethiopia, 12, 14, 15, 9, … 至: continent, region, country, year, value Africa, East Africa, Ethiopia, 1990, 12 Africa, East Africa, Ethiopia, 1991, 14 Africa, East Africa, Ethiopia, 1992, 15 Africa, East Africa, Ethiopia, 1993, 9 … 有一堆行,所以这是不可能的。 我知道有一个办法可以做,我真的只是有问题甚至解释我在做什么。 它本质上是转换桌子的一部分,但不是全部。 编辑:这是一个完整的数据行的示例: continent, region, […]

Excel VBA将variables列范围转置为variables行

你好,StackOverFlow社区, 我不久前就开始使用excel vba,可以真正使用一些有点复杂的问题。 我有一个电子表格,其中包含一列“主要”部分和其下方的“备选”部分。 我需要创build一个macros,将可变替代部分转置到其关联Prime部分的右侧。 因此,对于下面的例子,在列A中,“P”是主要部分,“A”是阿尔泰特: A | 1P | 1A | 1A | 1A | 2P | 2A | 2A | 3P | 3A | 我试图创build一个macros将给我以下结果: A || B || C || D | 1P | 1A | 1A | 1A 1A | 1A | 1A | 2P | 2A | 2A 2A | […]

VBA转置types不匹配错误

我一直在尝试调换一个数组来将ADODB.recordset中的logging粘贴到excel行中。 (logging存储在2D Variant数组中)。 但是,每当我尝试像下面的代码的第一行,我得到一个13:types不匹配的错误代码。 因此,我试图深入了解错误所在,并构build了一个简单的整数2d数组。 看来转置function不能做这个转换或者不抛出13错误代码。 在线研究似乎表明,这个错误是由于转置元素的数量超过了64k而造成的,但是这个数字不能超过64k。 有什么想法吗? varRecords = rs2.GetRows(3) ' rs2 is a ADOBD.Recordset intNumReturned = UBound(varRecords, 2) + 1 intNumColumns = UBound(varRecords, 1) + 1 For intRow = 0 To intNumReturned – 1 For intColumn = 0 To intNumColumns – 1 Debug.Print varRecords(intColumn, intRow) Next intColumn Next intRow Dim Destination As Range […]

读出错误定义的multidimensional array

我有一个数组,我从一个代码分割,然后切片数组。 参考这个问题: 拆分multidimensional array,然后切片 我已经添加了这一行代码: splitted = Application.Transpose(splitted) 现在数组被定义如下: 当我尝试运行下面的代码: For r = LBound(splitted) To UBound(splitted) Debug.Print uniqueValues(splitted(r)) Next r 我得到这个错误: run time error 9 subscript out of range 为了参考原始代码,我收到这个输出: 它适用于我的函数,我只能想象它与数组的定义有什么不同。 函数需要这个input: Function uniqueValues(uniqueArray As Variant) As Integer : Function uniqueValues(uniqueArray As Variant) As Integer Dim arr As New Collection, a Dim i As Long […]

将行号作为variables传递,并引用其他表单

我在一张纸上收集了一行数据( Harvest targets ),我想将其转换为另一个Field worksheet表( Field worksheet )到一个数组中。 在第二张Field worksheet表( Field worksheet )上,我有一个下拉列表( A31 )来select裁剪,并且在它旁边有一个单元格( I31 ),用于输出第一个工作表中裁切的行号( Harvest targets )。 我试图使用下面的公式,但它不工作(我得到一个错误): =TRANSPOSE('Harvest targets'!(INDIRECT("X" & I31):INDIRECT("AU" & I31))) 任何想法,我做错了什么? 我试图使用INDIRECT在预定范围的列( X:AU )中I31由I31设置的另一个表中正确的行。