アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2000をつかっています。
ピボットテーブルのことなんですが、
データに文字列を表示したいのです。

ムリでしょうか??

ピボットテーブル以外でもよい方法があれば教えてください.

A 回答 (5件)

ピボットテーブル+ワークシート関数+手作業で・・・




(1)行=「名前」、列=「曜日」、データ=「名前」で新規シートにピボットテーブル作成。
   A列に「名前」、B~H列に「曜日」、I列に「総計」で、3行目からがデータの行の表ができると思います。(以下は、その前提で・・)

(2)B2~H2のセルを選択・コピーし、J2~P2のセルを選択・貼付け。
   (ピボットテーブルの列のタイトルを、真横のセルにコピー・貼付け)

(3)J3のセルに「=IF(B3="","",$A3)」と入力。
   (ピボットテーブルの該当セルが空欄でなければ名前(A列)を表示)

(4)J3のセルをコピーし、K3~P3のセルまで貼付け。
   ((3)を一週間分作成→これで1名分完成)

(5)J3~P3のセルを選択・コピーし、J4~P?(「?」はピボットテーブルのデータの最後の行数になります。)のセルを選択・貼付け。
   (これで全員分作成)

(6)J列~P列を選択・コピーし、その場所へ「形式を選択して貼付け」で値を貼付け。
   (計算式を消去)

こうすれば、J2~P?のセルに、希望の表ができあがると思います。

文章にするとややこしいですが、やってる事は単純です。
マクロを使わずに済ませたいなら、こんな方法でいかがでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます。
初心者なのでたすかります。参考にさせていただきます。

お礼日時:2002/09/22 15:06

すみません。

マクロのコードで記述ミスをしてしまいました。No3のマクロではなく、下記のマクロをコピーしてNo3の手順で実行してみて下さい。

記述ミスをしてしまい、申し訳ございませんでした。

Sub Narabekae()

Dim myCell As String
Dim i As Integer
Dim myRange As Range
Dim myAddress As String

myCell = Cells(Rows.Count, 2).End(xlUp).Address
For i = 1 To 5
Select Case i

Case 1
Range("D1").Value = "月曜日"
With Range("B1:" & myCell)
Set myRange = .Find("月", lookat:=xlWhole)
If Not myRange Is Nothing Then
myAddress = myRange.Address
Do
Cells(Rows.Count, 4).End(xlUp).Offset(1, 0).Value = myRange.Offset(0, -1).Value
Set myRange = .FindNext(myRange)
Loop While Not myRange Is Nothing And myRange.Address <> myAddress
End If
End With
Case 2
Range("E1").Value = "火曜日"
With Range("B1:" & myCell)
Set myRange = .Find("火", lookat:=xlWhole)
If Not myRange Is Nothing Then
myAddress = myRange.Address
Do
Cells(Rows.Count, 5).End(xlUp).Offset(1, 0).Value = myRange.Offset(0, -1).Value
Set myRange = .FindNext(myRange)
Loop While Not myRange Is Nothing And myRange.Address <> myAddress
End If
End With
Case 3
Range("F1").Value = "水曜日"
With Range("B1:" & myCell)
Set myRange = .Find("水", lookat:=xlWhole)
If Not myRange Is Nothing Then
myAddress = myRange.Address
Do
Cells(Rows.Count, 6).End(xlUp).Offset(1, 0).Value = myRange.Offset(0, -1).Value
Set myRange = .FindNext(myRange)
Loop While Not myRange Is Nothing And myRange.Address <> myAddress
End If
End With
Case 4
Range("G1").Value = "木曜日"
With Range("B1:" & myCell)
Set myRange = .Find("木", lookat:=xlWhole)
If Not myRange Is Nothing Then
myAddress = myRange.Address
Do
Cells(Rows.Count, 7).End(xlUp).Offset(1, 0).Value = myRange.Offset(0, -1).Value
Set myRange = .FindNext(myRange)
Loop While Not myRange Is Nothing And myRange.Address <> myAddress
End If
End With
Case 5
Range("H1").Value = "金曜日"
With Range("B1:" & myCell)
Set myRange = .Find("金", lookat:=xlWhole)
If Not myRange Is Nothing Then
myAddress = myRange.Address
Do
Cells(Rows.Count, 8).End(xlUp).Offset(1, 0).Value = myRange.Offset(0, -1).Value
Set myRange = .FindNext(myRange)
Loop While Not myRange Is Nothing And myRange.Address <> myAddress
End If
End With

End Select
Next i

End Sub
    • good
    • 0
この回答へのお礼

お礼がおそくなりもうしわけありません。
たすかります。参考にさせていただきます。

お礼日時:2002/09/22 15:05

早速補足をしていただき有難うございました。

やっとあなた様のやりたいことがわかりました。
もしかしたら、ピポットテーブルで実行するすることが可能なのかもしれませんが、私はできないと思いますのでVBAでマクロを書いてみました。

Sub Narabekae()

Dim myCell As String
Dim i As Integer
Dim myRange As Range
Dim myAddress As String

myCell = Cells(Rows.Count, 2).End(xlUp).Address
For i = 1 To 5
Select Case i

Case 1
Range("D1").Value = "月曜日"
With Range("B1:" & myCell)
Set myRange = .Find("月", lookat:=xlWhole)
If Not myRange Is Nothing Then
myAddress = myRange.Address
Do
Cells(Rows.Count, 4).End(xlUp).Offset(1, 0).Value = myRange.Offset(0, -1).Value
Set myRange = .FindNext(myRange)
Loop While Not myRange Is Nothing And myRange.Address <> myAddress
End If
End With
Case 2
Range("E1").Value = "火曜日"
With Range("B1:" & myCell)
Set myRange = .Find("火", lookat:=xlWhole)
If Not myRange Is Nothing Then
myAddress = myRange.Address
Do
Cells(Rows.Count, 5).End(xlUp).Offset(1, 0).Value = myRange.Offset(0, -1).Value
Set myRange = .FindNext(myRange)
Loop While Not myRange Is Nothing And myRange.Address <> myAddress
End If
End With
Case 3
Range("F3").Value = "水曜日"
With Range("B1:" & myCell)
Set myRange = .Find("水", lookat:=xlWhole)
If Not myRange Is Nothing Then
myAddress = myRange.Address
Do
Cells(Rows.Count, 6).End(xlUp).Offset(1, 0).Value = myRange.Offset(0, -1).Value
Set myRange = .FindNext(myRange)
Loop While Not myRange Is Nothing And myRange.Address <> myAddress
End If
End With
Case 4
Range("G3").Value = "木曜日"
With Range("B1:" & myCell)
Set myRange = .Find("木", lookat:=xlWhole)
If Not myRange Is Nothing Then
myAddress = myRange.Address
Do
Cells(Rows.Count, 7).End(xlUp).Offset(1, 0).Value = myRange.Offset(0, -1).Value
Set myRange = .FindNext(myRange)
Loop While Not myRange Is Nothing And myRange.Address <> myAddress
End If
End With
Case 5
Range("H3").Value = "金曜日"
With Range("B1:" & myCell)
Set myRange = .Find("金", lookat:=xlWhole)
If Not myRange Is Nothing Then
myAddress = myRange.Address
Do
Cells(Rows.Count, 8).End(xlUp).Offset(1, 0).Value = myRange.Offset(0, -1).Value
Set myRange = .FindNext(myRange)
Loop While Not myRange Is Nothing And myRange.Address <> myAddress
End If
End With

End Select
Next i

End Sub

次の手順で操作を実行してみてください。

1.Sub Narabekae()~End Subまでをコピーする。

2.エクセルの新規ブックを開く

3.Alt+F11を押してVBE(visual Basic Editor)を開く

4.画面左側のVBAProjectと書かれてる下のSheet1をダブルクリックする。すると、右側の画面が灰色から白に変わる。

5.白い部分に先程コピーしたコードを貼り付ける。

6.Alt+Qを押してVBEを閉じる

7.Sheet1のメニュバーにあるツールをクリック後マクロ→マクロの順でクリックし、マクロダイアログボックスを表示させる。

8.右側に並んでいるオプションというコマンドボタンをクリックし、カーソルが点滅しているテキストボックスにnと入力後okボタンを押す。

9.右上の×ボタンをクリックしてマクロダイアログボックスを閉じる。

10.Sheet1のA列に名前・B列に曜日を適当に入力し、Ctrl+nを押す。

D1~H1に曜日が入力され、曜日の下にその曜日に対応する人物名が入力されます。

もし、うまく動かなかった時・解らないことがあるときはご遠慮なくお知らせ下さい。私でよろしければ、あなた様のやりたいことが実現できるまで一緒に考えたいと思います。 
    • good
    • 1

早速補足をしていただき有難うございました。


 

ピポットテーブルで水の下の↓に何を入れたいのでしょうか。その点について再度お知らせ下さい。
お手数をおかけいたしますが、よろしく御願いいたします。

この回答への補足

↓のところは、人の名前(文字列)を表示したいんです・・・

曜日のしたに名前がでればたすかるのですが・・・
よろしくお願いします。

補足日時:2002/09/19 17:43
    • good
    • 0

はじめまして。


データに文字列を表示したいということですが、もう少し具体的に何をしたいのかお知らせいただけないでしょうか。
何かよい方法をご紹介できるかと思います。

この回答への補足

言葉たらずで申し訳ありません。


元データ
名 前   曜 日
 ↓     ↓   

ピボットテーブルで・・・
    月  火  水  木  金
名 前 ↓  ↓  ↓  ↓  ↓

こういうことをしたいのですが。
よろしくお願いします。

補足日時:2002/09/19 09:16
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!