列と行を入れ替える

コピー&ペーストで列と行を入れ替えて入力したいのですが、Numbersでする方法を教えてください。

MacBook Pro, Mac OS X v10.7.3 Lion

投稿日 2012/03/08 00:27

返信
返信: 13

2013/11/14 02:38 T22T への返信

T22T さん


早速のご指導ありがとうございます。


絶対参照の入力ですが、 例示されました表のように「Table1::$B$2:$D$4」を楕円形で囲んでメニューをだす方法が分かりませんが 、セルB2,L68に対しセル指定文字の前にドルマークというのでしょうか「$」を付けて「$B$2:$L$68」と入力しております。

このような方法ではエラーになるのでしょうか。


ユーザがアップロードしたファイル

ユーザがアップロードしたファイル

ユーザがアップロードしたファイル

また、入れ替え範囲をB2:L68にするとA列の年月日と1行目の項目が入れ替えの対象から外れますので、ヘッダの付いた表でつくるのは不適切でしょうか。

2013/11/14 04:15 ayaG への返信

ayaGさん、失礼致します。


$を付けて絶対参照のセルを指定する方法はあっています。 但、どういう訳か、アプリケーションに認識されない場合があるようです。 そのため、数式バーで絶対参照の値(Table 1 :: $B$2 : $L$68)の右端あたりにカーソルを合わせるとその部分が青色にハイライトされて、下向きの三角マークが表示されるますので(下図)、それをクリックして、行列のそれぞれを絶対参照に指定してやる必要があるみたいです。 ご確認下さい。

また、ヘッダー行列がある表を参照する場合でも、全く問題ありませんよ。 ヘッダー行列の(値のみの)入れ替えも可能だと考えます。

ユーザがアップロードしたファイル

2013/11/13 04:14 山モン への返信

行と列のデーター入れ替え


ヘッダ行とヘッダ列のついた表でデーターの入力が終わったのですが、行と列を入れ替えた方が見易いのでデーターを入れ替えようとして、同じ画面に新しい表を作り、

A1に「=INDEX(Table1::$A$1:$L$70,COLUMN(),ROW())」を入力しましたが、赤い三角が表示され、ほかのセルにもコピーしても赤い三角が表示されてデーターの入れ替えができません。

「Table1」を「表1」に置き換えても同じです。

「“$A$1:$L$70”は無効な参照です」のアラームがでます。

元の表のヘッダ行のフリーズは解除してあります。

式の入力が間違っているのでしょうか。


iMac 21.5inch Mid 2011 Mac OS X Lion 10.7.5

Numbers’09 ver.2.3 です。


助言よろしくお願いいたします。

2013/11/14 04:47 T22T への返信

追記: =INDEX(Table 1 :: $B$2 : $L$68, COLUMN(), ROW()) の、COLUMN()とROW()の部分について、


最初の数式の入力場所が(表2の左上のセル)、たまたまA1のセルの場合だとよいのですが、例えば、D4のセルである場合はそのセルの行列の位置情報で少し修正する必要があると思います。


それぞれ、


COLUMN()-COLUMN($D$4)+1

ROW()-ROW($D$4)+1


と変えてやる必要があると思います。

2013/11/15 05:00 T22T への返信

T22T さん


早速詳細なご助言ありがとうございます。

あらためて、A1に『=INDEX(Table1::$A$1:〜』と入力してカーソルをセル住所に持って行ったのですが、何の変化もありませんでした。

Numbersの左欄に「シート1」「表1」とあるので、「Table1」を「表1」に変えたところセル住所が楕円形で囲まれ逆三角形が表れクリックするとメニューがぶら下がりました。

そこに絶対行列参照にチェックが付いていたのでエンターすると「0」が表示され、数式が機能していることがわかりました。

新しい表のセルすべてに式をコピーしてデーターの入れ替えができたことを確認しました。


ありがとうございました。心からお礼申し上げます。

2013/11/15 05:59 ayaG への返信

ayaGさん、度々、失礼致します。 表の名前を変更する必要がありましたね。 すまません、気付きませんでした。


試しに、行列を入れ替えて、新しい表に貼付けるAppleScriptを作ってみました。 セルの値のみを入れ替えるだけで、セルのフォーマットの再現はさせていません。 表中のセル範囲を囲んだ状態で実行します。 よろしければ、御使用下さい。(Numbers'09で作働。 Numbers v3.0では動かず)


tell document 1 of application "Numbers"



--セルを選択している表を取得

set theList to every table of every sheet whose selection range is not missing value

set theTable to my getTableFromList(theList)

set theSheet to item 1 of (every sheet whose every table contains theTable)


tell theTable



-- 選択範囲の情報を取得

set theValues to value of every cell of (selection range)

set CN to count every column of selection range

set RN to count every row of selection range


end tell



-- 新しく表を作る場合

tell theSheet

set theNewTable to make new table with properties {row count:CN + 1, column count:RN + 1}

tell theNewTable

set i to 1

repeat with j from 2 to RN + 1

repeat with k from 2 to CN + 1

set value of cell k of column j to item i of theValues

set i to i + 1

end repeat

end repeat

end tell

end tell


end tell


on getTableFromList(theList)

repeat with i in theList

if (length of i is not 0) then return item 1 of i

end repeat

end getTableFromLis

2013/11/16 05:04 ayaG への返信

ayaGさん、いえいえ、こちらこそ、余計な書き込みになってしまい、申訳ございませんでした。 AppleScriptはアプリケーションの機能を少し拡張することができるので便利なのですが、使わなくても、そんなに困るものでもないと思います。 参考程度にして頂ければ幸いです。 (通常はアプリケーションフォルダ内のユーティリティフォルダにある、AppleScript Editor.appを使ってファイルを編集します。 環境設定からScriptメニューを表示させれば、メニューバーからAppleScriptを実行できるので、結構便利です。)

2013/11/16 04:50 T22T への返信

T22T さん


申し分けありません。

せっかく書いていただきましたが、AppleScriptなるものをどこでどう使うのかの知識がありません。

関数も、数値の合計、個数の合計、平均値、計算の元となるセルが空白の時の答えのセルの空白などごく初歩的なものしか理解しておりません。


お気遣いいただきましが、生かすことができず心苦しく思っております。 深謝。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

列と行を入れ替える

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。