• ベストアンサー

縦書きの表を以下のようにするには?

  A   B  C   D   E  F  G 1期日 場所 番号 数量 合計 23/1   A  7   20  60 33/2   A  8   30  80 43/3   B  9   45  75 53/4   D  5   15  90  のような形の表を  期日 3/1 3/2 3/3 3/4  場所  A  A  B  D  番号 7  8  9  5  数量 20 30 45 15  合計 60 80 75 90 と書き換えたり、別シート表示させたりする場合には『型式を選択→行列を入替貼付』またはTRANSUPOSE関数を使用するのは知っています。検索行列関数で表示するにはどうすればいいでしょうか?  関数式で元シートに表示させる場合は、INDIRECT,ADRESS,OFFSET,INDEX,INT,MOD,ROW,COLUMN関数を使い、数値を+-したりします。  個々の1つ1つの関数は『こう使う』というのは何となく分かるのですが、これらが幾重にも複合ネストされると『何でこのセルがこの位置に移って表示されるのか理屈が分かりません。  以前、似たような質問で回答いただき、目的は果たせましたが、未だに何故そうなるのか理解できておりません。  縦→横に入替え、またはその逆の表示をさせたい場合、これらの関数は必ず出てきます。  上記の元の表にE列に合計を表示してますが、F列以降にデーターが増加すると  下の配列表示にするにはINT,MOD,ROW,COLUMN関数のどこの数値を増減するのか相互関係が分かりません。  参考書を買い、独学で学習していますが、難しいです。皆さんはどのようにして覚えられたのか、お聞きしたいです。  やはりPCスクールに行かないと無理なんでしょうか?この辺の関数を理解できそうなサイトをご存知だったら教えていただけないでしょうか?  私はINDIRECT,ADRESS,OFFSET,INDEX,INT,MOD,ROW,COLUMN関数等を凄く苦手にしています。  

質問者が選んだベストアンサー

  • ベストアンサー
noname#204879
noname#204879
回答No.5

[No.4回答に対する補足]に対するコメント、 先ず、「レベルが低く」なんてことは全くないですよ。ご安心ください。 ご質問の内容は至極簡単でも、正解を出すのはとても難しいことでした。既に imogasiさんから回答が出ていたので、私は別解を出さざるを得ませんでした。式の構成が非常に似ていることにお気づきでしょうか?先に出されたのが INDEX関数だったので、私は OFFSET関数を使ってみました。 imogasiさんの場合は、必ず別シートのセル A1 から式を入力する必要があります。私の場合は、同じシート上でも構わないようにしました。その分、難解になっていると思います。 だから COLUMN()、ROW() でなく、余り見かけない COLUMN(A:A)、ROW(1:1) を使いました。「PCスクール」では教えないでしょうね。更に COLUMN(A:A)-1、ROW(1:1)-1 などとなっているので奇異に見えるかも。ちなみに、COLUMN(A:A)、ROW(1:1) はそれぞれ COLUMN(A1)、ROW(A1) とした方が分かり易かったかも。さて… 》 REF!エラーが出てしまいました。何故なのでしょう? imogasiさんの式で問題なかったのなら、私の式で なぜエラーになったのかは私にも分かりません。#REF!エラーは参照不可能を意味しています。COLUMN(A:A)-1、ROW(1:1)-1 はそのとおりに入力しましたか?見直してみてください。分からなかったらジャンジャン再質問してください。貴方のレベルアップに協力します。

その他の回答 (4)

noname#204879
noname#204879
回答No.4

[No.3回答]のステップ3の「4列」を「5列」に訂正。

1960ken
質問者

補足

回答いただいた式をセルに入力しましたが、REF!エラーが出てしまいました。何故なのでしょう?  レベルが低く、すみません。

noname#204879
noname#204879
回答No.3

1.任意のシートの任意のセルに次式を入力   =OFFSET(Sheet1!$A$1,COLUMN(A:A)-1,ROW(1:1)-1) 2.このセルを右4列に複写 3.上の行の4列のセル範囲を下方に4行複写 4.最上行をユーザー定義の m/d で書式設定

1960ken
質問者

お礼

mike_gさん、回答有難うございます。 やはりこれですね。パッとみても頭に中々、描けません。参考書にもあまり、このような例が載っておらず、苦戦します。  気長に続けてみます。有難うございました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

例データ Sheet1A1:E5 期日 場所 番号 数量 合計 2006/3/1 A 7 20 60 2006/3/2 A 8 30 80 2006/3/3 B 9 45 75 2006/3/4 D 5 15 90 (書式の設定) B1:E1を日付 B2:E2を文字列 B3:E5を数値に設定する。 (数式) Sheet2のA1に =INDEX(Sheet1!$A$1:$E$5,COLUMN(),ROW()) A1の式をE1まで複写する。 A1:E1を範囲指定し、E1で+ハンドルを出し、A5:E5 まで引っ張る。 結果 Sheet2のA1:E5 期日 2006/3/1 2006/3/2 2006/3/3 2006/3/4 場所 A A B D 番号 7 8 9 5 数量 20 30 45 15 合計 60 80 75 90

1960ken
質問者

お礼

imogasiさん、いつもながら回答有難うございます。 完成式を一つ一つバラして検証しています。理解できるまでやりたいと思います。  有難うございました。

noname#204879
noname#204879
回答No.1

》 やはりPCスクールに行かないと無理なんでしょうか? 単なる回答でなく、解答はノーです。私は講習とかマニュアル本とかに頼ったことはありません。 講習とかマニュアル本とかが無駄と言っているのではありません。 要は、貴方が仰っているように「何故そうなるのか理解」する努力が必要で、どうしても分からなければ質問すれば好い。が私の持論です。