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

教えてください。

シート①に
A1~A10に数値、B1~B10に数値、C1~C10に「AからBを引いた数値」、D1~D10にこの列の数値情報の表があります。

シート②に
同じ表がありますが、A1~A10にはシート①のC1~C10の数値が入るようにしたいです。
しかし、C1~C10の数値が「0」の場合は反映されず、詰めてA1~A10の順に入るようにしたいです。


シート①
A1…100  B1…100  C1…0   D1…りんご
A2…100  B2…50   C2…50   D2…みかん
A3…100  B3…0    C3…100  D3…もも
・・・

シート②
A1…50  D1…みかん
A2…100  D2…もも
A3…シート①のC3(数値が0で無い場合)
・・・
こんな風です。

どうぞよろしくお願いします。

A 回答 (2件)

こんにちは



配列数式での例です
シート②のA1セルに

=IF(COUNTIF(シート①!$C$1:$C$100,">0")<ROW(),"",INDEX(シート①!$C$1:$D$100,SMALL(IF(シート①!$C$1:$C$100>0,ROW($C$1:$C$100)),ROW()),COLUMN()))

※ シート名(シート①)は適切なものに修正願います。
※ データの範囲は、とりあえず1~100行までとして設定してあります。
※ 配列数式なので、Ctrl + Shift + Enterで確定してから、A、B列にフィルコピーしてください。
    • good
    • 0
この回答へのお礼

ありがとう

ありがとうございます。
やってみます。

お礼日時:2017/07/07 15:58

マクロしか思いつきませんでした。


シート名やマクロ名等、適宜修正してください。
シート1のC列が0なら次へ、他の場合はシート2にC列とD列コピペ。
これをC列の情報が無くなるまで繰り返すマクロです。

-------------------------------------------------------------------------------------

Sub test()

ST = 1 'ループ用
G = 1 '行

Do While Sheets("Sheet1").Cells(ST, "C") <> ""
If Sheets("Sheet1").Cells(ST, "C") <> 0 Then
Sheets("Sheet2").Cells(G, "A") = Sheets("Sheet1").Cells(ST, "C")
Sheets("Sheet2").Cells(G, "B") = Sheets("Sheet1").Cells(ST, "D")
G = G + 1
End If
ST = ST + 1
Loop

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

ありがとう

ありがとうございます。
やってみます。

お礼日時:2017/07/07 15:58

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